[9월 6일 보안브리핑] StyleSmuggler·PaperCut·libxml2
Magento·Adobe Commerce의 StyleSmuggler 공격, PaperCut 2차 자격증명 수집, libxml2 2.15.4의 8개 취약점 수정을 운영 점검 순서로 다룹니다.

오늘의 주요 보안 이슈
9월 6일 브리핑은 인터넷 상점, 프린트 관리 서버, XML 처리 라이브러리처럼 서로 다른 운영 경계를 다룹니다. Sansec은 Magento와 Adobe Commerce에서 인증 없이 원격 코드 실행으로 이어지는 StyleSmuggler 공격을 공개했고, PaperCut NG·MF 침해에서는 초기 진입 뒤 시스템과 계정 정보를 훑고 자격증명을 모으려는 2차 활동이 구체화됐습니다. libxml2 2.15.4에는 메모리 처리와 입출력, XInclude 경계에 걸친 8건의 취약점 수정이 반영됐습니다.
세 이슈는 대응 방식이 다릅니다. StyleSmuggler는 공식 패치가 나오기 전 공격이 진행된 사례여서 노출면 축소와 침해 여부 확인을 함께 해야 합니다. PaperCut은 긴급 패치를 적용했더라도 공개 관리면, 서버 로그, 자식 프로세스, 새 관리자 계정을 다시 확인해야 합니다. libxml2는 직접 설치된 서버 프로그램만 확인해서는 부족하며, 애플리케이션과 컨테이너 안에 포함된 전이 의존성까지 추적해야 합니다.
주요 이슈 한눈에 보기
- StyleSmuggler: GraphQL의 styles 속성을 악용해 코드를 심고 실패한 결제 메일 렌더링 과정에서 실행하는 2단계 흐름
- PaperCut 2차 공격: pc-app.exe 이후 정찰 명령, 설정 검색, 레지스트리 하이브 수집 도구, 새 관리자 계정 생성 시도
- libxml2 2.15.4: 범위를 벗어난 읽기, 정수 오버플로, 스택·힙 버퍼 오버플로, XInclude 플래그 전달 문제 등 8건 수정
- 운영 우선순위: 외부 노출 차단, 증거 보존, 수정판 적용, 자격증명 교체와 회귀 검증을 대상별로 분리
Magento·Adobe Commerce StyleSmuggler
StyleSmuggler는 Magento의 템플릿 처리 경계를 노립니다. Sansec이 공개한 흐름은 먼저 GraphQL 요청의 styles 속성으로 PHP 코드를 주입하고, 이후 결제 실패 알림 메일을 렌더링하는 정상 기능이 오염된 코드를 실행하게 만드는 두 단계입니다. 이용자가 메일을 열어야 하는 공격이 아니며, 메일 발송이 실패하더라도 렌더링 단계가 실행되면 공격 경로가 성립할 수 있습니다. 웹방화벽에서 일반적인 파일 업로드나 관리자 로그인만 대상으로 삼는 점검으로 놓치기 쉬운 이유입니다.
Sansec은 깨끗한 Magento Open Source 2.4.7, 2.4.8, 2.4.9 환경에서 인증 전 공격 사슬을 재현했고, 처음 확인한 피해 시스템은 2.4.6-p15와 당시 보안 패치가 적용된 상태였습니다. 공격 성공 뒤에는 Rust로 작성된 작은 백도어가 실행되어 99.84.67.186과 통신을 기다렸습니다. 프로세스는 커널 작업자처럼 보이는 이름을 사용하고 임시 경로에 파일을 남길 수 있어, 프로세스 이름 하나보다 실행 경로·부모 프로세스·네트워크 연결을 묶어 봐야 합니다.
운영팀은 먼저 인터넷에서 접근 가능한 Magento·Adobe Commerce 인스턴스와 GraphQL 사용 여부를 식별해 주세요. Sansec의 임시 권고에 따라 공식 수정 전에는 GraphQL을 비활성화하는 방안을 서비스 영향과 함께 검토하고, 접근 로그에서 비정상적인 styles 매개변수와 보고서 생성 흔적 확인을 권합니다. 결제 실패 알림 메일이 갑자기 늘었다면 단순 결제 오류로 닫지 말고 같은 시각의 GraphQL 요청, var/report 경로, cron 등록, 비정상 프로세스를 연결해 확인해야 합니다.
의심 흔적이 보이면 패치 대기 상태로 두지 말고 침해 대응으로 전환해야 합니다. 웹 서버를 격리하고 메모리·프로세스·cron·웹 로그를 보존한 뒤, 승인된 배포본과 파일 차이를 비교하세요. 백도어 프로세스나 주입 흔적이 확인된 시스템은 검증된 이미지에서 재구축하고 Magento 관리자 계정, 배포 키, 결제 연동 비밀정보, 데이터베이스 접근정보의 교체 범위를 정해야 합니다. 단순히 악성 파일 하나를 지우는 방식은 최초 진입과 2차 지속성의 전체 범위를 닫지 못할 수 있습니다.

PaperCut 2차 공격과 자격증명 수집
PaperCut은 CVE-2026-81578과 CVE-2026-82078 공개 이후 실제 공격이 이어진 사례입니다. 전자는 특정 조건에서 인증 검사가 끝나기 전에 관리 기능을 호출해 구성 변경이 가능한 접근통제 문제이고, 후자는 데이터베이스 연결 유틸리티가 승인 목록 없이 드라이버 클래스를 불러오는 문제입니다. 두 조건이 연결되면 외부 요청에서 구성 변경과 PaperCut 서버 프로세스 권한의 코드 실행으로 이어질 수 있습니다.
후속 관측에서 공격자는 단순한 초기 실행에 머물지 않았습니다. uname, whoami, ver, tasklist 같은 명령으로 운영체제와 사용자, 프로세스를 파악하고 Administrator17 계정 생성을 시도했습니다. pc-app.exe 아래에서 명령 셸과 PowerShell이 실행됐으며, PaperCut의 설정 파일에서 password, secret, ldap, bind, token 문자열 검색 활동도 관측됐습니다. 레지스트리 하이브를 수집하는 lsa_collect.exe와 save_hives.exe, Meterpreter 관련 Java 페이로드까지 전달돼 대응 범위가 프린트 애플리케이션 자체를 넘어 시스템 자격증명으로 확장됐습니다.
PaperCut 공식 권고는 인터넷에서 애플리케이션 서버의 웹 인터페이스에 직접 접근하지 못하도록 제한하고 Emergency Patch Release 3을 적용하라고 안내합니다. Release 3은 앞선 긴급 패치를 누적하고 SAML 로그인과 레거시 Microsoft SQL Server 드라이버 관련 회귀를 고쳤으며 추가 공격 사슬을 막는 강화 조치를 포함합니다. 주 애플리케이션 서버만 올리고 끝내지 말고 Site Server와 Secondary·Print Server도 패치된 상태인지 확인해야 합니다.
사고 점검에서는 server.log를 먼저 보존하고, 삭제되거나 비정상적으로 짧아진 구간이 있는지 살펴보세요. jdbc:derby:memory:pwn, VALUES CAST, 임의의 짧은 드라이버 이름과 관련된 오류 문자열은 공식 권고에 포함된 단서입니다. 이어서 pc-app.exe가 cmd.exe나 powershell.exe를 실행한 기록, 짧은 이름의 .class·.cmd·.out 파일, /custom 경로의 pcp_ 패턴 파일, 새 관리자 계정 이벤트를 시간순으로 맞추면 초기 진입과 후속 활동을 연결할 수 있습니다.
침해 정황이 확인된 서버는 현재 백업과 증거를 먼저 확보한 뒤 완전히 재구축하고, 의심 활동 이전의 깨끗한 백업에서 복원하는 것이 공식 권고의 방향입니다. 이때 PaperCut 관리자 비밀번호뿐 아니라 운영체제 관리자, 서비스 계정, LDAP 바인드, 데이터베이스, API 토큰까지 실제 접근 가능성을 기준으로 교체 범위를 넓혀야 합니다. 외부 노출을 닫고 패치를 적용한 뒤에도 계정 생성·비밀정보 접근 흔적을 확인해야 공격자가 이미 확보한 자격증명으로 재진입하는 위험을 줄일 수 있습니다.

libxml2 2.15.4 취약점 8건
libxml2 2.15.4에서는 CVE-2026-86137부터 CVE-2026-86144까지 8건이 함께 수정됐습니다. 정규식 처리의 범위를 벗어난 읽기와 NULL 포인터 역참조, 문자열 사전과 URI 이스케이프 처리의 정수 오버플로, DTD 요소 문자열 구성의 스택 기반 버퍼 오버플로, XPointer 평가의 힙 기반 버퍼 오버플로가 포함됩니다. 출력 콜백으로 음수 길이 전달 가능성와 XInclude 처리에서 파서 플래그 전달 누락도 같은 수정판에 묶였습니다.
이 묶음을 하나의 위험으로 단순화하면 우선순위를 잘못 잡기 쉽습니다. 일부 문제는 비정상 XML이나 길이 처리에서 충돌과 메모리 손상으로 이어지고, CVE-2026-86144는 XML_PARSE_NONET 같은 네트워크 차단 플래그가 XInclude 경로에 제대로 전달되지 않아 사용자 정의 로더의 외부 자원 접근을 허용할 여지가 생깁니다. 애플리케이션이 공격자가 제공한 XML, SVG, XPointer, XInclude 입력을 처리하는지와 사용자 정의 콜백·로더를 쓰는지에 따라 실제 노출이 달라집니다.
첫 단계는 자산에서 libxml2 호출 경로 식별입니다. 운영체제 패키지 목록뿐 아니라 컨테이너 이미지, 언어 바인딩, 문서 변환기, API 게이트웨이, 이미지·문서 업로드 처리기, 보안 스캐너에 정적으로 포함된 사본까지 구분해 주세요. 파일 이름만 찾으면 벤더가 백포트한 패키지와 애플리케이션에 내장된 사본을 혼동할 수 있으므로 패키지 관리자 기록, SBOM, 빌드 잠금 파일, 컨테이너 이미지 다이제스트를 함께 확인하는 편이 안전합니다.
업스트림을 직접 사용하는 환경은 2.15.4 이상으로 올리고, 배포판이나 상용 제품에 포함된 경우에는 해당 공급자가 제공하는 보안 업데이트와 백포트 상태를 기준으로 적용해야 합니다. 업데이트 뒤에는 정상 XML 처리만 시험하지 말고 큰 URI, 복잡한 정규식, XPointer·XInclude, 사용자 정의 입출력 콜백, 네트워크 비활성화 옵션이 기존 정책대로 작동하는지 회귀 테스트를 진행하세요. 서비스가 외부 URL을 가져오지 않도록 설계됐다면 DNS와 프록시 기록을 함께 확인해 정책 밖 연결이 생기지 않는지도 검증해야 합니다.
패치 증적은 직접 의존성과 전이 의존성을 나눠 남겨야 합니다. 운영체제 패키지는 설치 버전과 벤더 수정 번호를 기록하고, 컨테이너는 새 이미지 다이제스트와 재배포된 워크로드를 연결하세요. 정적 링크 제품은 새 빌드가 실제로 배포됐는지 확인해야 합니다. 개발 저장소의 버전 선언만 바뀌고 운영 이미지가 교체되지 않으면 취약한 사본이 계속 실행될 수 있으므로, 빌드 산출물과 실행 중 프로세스의 라이브러리 매핑을 가능한 범위에서 대조하는 것이 좋습니다.

운영 우선순위
오늘의 세 이슈는 먼저 외부 노출과 실제 공격 여부로 나누면 정리가 쉽습니다. 인터넷에 공개된 Magento·Adobe Commerce와 PaperCut 서버는 우선순위가 높습니다. StyleSmuggler는 공격이 시작된 상태에서 공식 수정 전 임시 차단과 침해 점검을 병행해야 하고, PaperCut은 Release 3 적용 여부와 후속 자격증명 수집 흔적을 함께 봐야 합니다. libxml2는 노출된 입력 경로와 포함 방식을 기준으로 자산을 묶어 배포 계획을 세우세요.
- 외부에서 접근 가능한 Magento·Adobe Commerce와 PaperCut 관리면 목록 확정
- StyleSmuggler의 GraphQL·보고서·cron·프로세스 흔적을 같은 시간축으로 점검
- PaperCut Release 3과 모든 관련 서버 구성요소의 패치 상태 확인
- pc-app.exe 자식 프로세스·설정 검색·계정 생성·레지스트리 하이브 수집 흔적 조사
- libxml2 직접·전이 의존성에 수정판을 적용하고 XInclude·NONET·입출력 회귀 테스트
점검 결과에는 자산명, 노출 경로, 확인 시각, 적용한 수정판, 수집한 로그 범위, 재시작·재배포 결과를 함께 남겨 주세요. 침해 흔적을 발견한 서버는 패치 완료 표시만 남기지 말고 증거 보존, 격리, 재구축, 관련 비밀정보 교체를 별도 작업으로 추적해야 합니다. 변경 뒤에는 상점 결제·메일 렌더링, 프린트 인증·카드 조회, XML 처리 기능의 정상 동작까지 확인해야 보안 조치와 서비스 연속성을 함께 확보할 수 있습니다.
확인한 출처
- StyleSmuggler: Magento and Adobe Commerce 0-day RCE under active attackSansec · 공식 자료
- URGENT Security Advisory: PaperCut NG/MF Security BulletinPaperCut · 공식 자료
- libxml2 2.15.4 releaseGNOME libxml2 · 공식 자료
사실관계와 수치는 연결된 자료에서 다시 확인할 수 있습니다.



의견을 남겨주세요
아직 등록된 댓글이 없습니다.