[분석가] 분석 — CVE-2025-49794
A critical Use-After-Free vulnerability in libxml2's XPath parsing of Schematron elements allows remote attackers to cause crashes or undefined behavior, requiring immediate library updates.
📋 요약
- 심각도 critical · CVSS 9.1 · EPSS 0.00669 · 악용난이도 moderate
🔍 공격 기법
- 트리거 조건: XML 문서를 파싱하는 과정에서
<sch:name path="..."/>와 같은 XML Schematron 스키마 요소가 포함되어 있고, 특정 상황에서 XPath 요소를 처리할 때 Use-After-Free(UAF) 결함이 트리거됩니다. - 공격 단계:
- 초기 접근: 공격자가 조작된 XML 문서를 생성하여
libxml2라이브러리를 사용하는 애플리케이션의 입력 인터페이스로 전송합니다. - 실행: 라이브러리가 XPath 요소를 파싱하는 과정에서 이미 해제된 메모리 영역에 접근(UAF)하게 됩니다.
- 영향: 프로그램의 비정상 종료(Crash)가 발생하거나, 추정: 메모리 레이아웃 조작을 통해 임의 코드 실행(RCE)으로 이어질 수 있는 정의되지 않은 동작이 수행됩니다.
- 초기 접근: 공격자가 조작된 XML 문서를 생성하여
- 공격 표면: XML 입력을 허용하는 모든 엔드포인트 및 API 파라미터. 특히 Schematron 검증 기능을 사용하는 시스템이 주 타겟입니다.
- CVSS 벡터 분석:
AV:N/AC:L/PR:N/UI:N에 따라 네트워크를 통해 인증 없이, 낮은 복잡도로 외부에서 직접 공격이 가능합니다.
악용 가능성: 공격 난이도 및 악용 가능성 분석
본 취약점은 AV:N/AC:L/PR:N/UI:N 벡터를 가지며, 이는 네트워크를 통해 인증이나 사용자 상호작용 없이 원격에서 공격이 가능하다는 낮은 진입 장벽을 의미합니다. 공격자는 libxml2 라이브러리가 XML 문서를 파싱하는 과정에서 <sch:name path="..."/> 요소가 포함된 특정 Schematron 구조를 처리할 때 발생하는 Use-After-Free(UAF) 결함을 트리거합니다. 주요 공격 표면은 해당 라이브러리를 사용하여 외부 XML 입력을 처리하는 모든 엔드포인트와 파라미터이며, 조작된 XML 문서를 전송함으로써 메모리 오염을 유도할 수 있습니다. 다만, EPSS 수치가 0.00669로 낮고 KEV에 등재되지 않은 점은 현재 야생(In-the-wild)에서의 실제 악용 사례가 미관측되었음을 시사하며, 이론적 심각도 대비 실질적 공격 빈도는 낮은 상태입니다. 결과적으로 공격 난이도는 낮으나, 정교하게 설계된 페이로드가 필요하므로 즉각적인 대규모 확산보다는 특정 타겟을 겨냥한 맞춤형 공격 가능성이 더 높습니다.
💥 영향 분석
- 기술적 위험:
- 서비스 중단(DoS): 메모리 오염으로 인한 프로세스 크래시가 즉각적으로 발생하여 서비스 가용성이 상실됩니다.
- 시스템 장악(추정): UAF 특성상 공격자가 메모리를 정교하게 제어할 수 있다면 임의 코드 실행을 통해 시스템 권한을 획득할 위험이 있습니다.
- 비즈니스 영향:
libxml2는 광범위하게 사용되는 라이브러리이므로, 이를 사용하는 핵심 인프라나 애플리케이션에서 장애가 발생할 경우 비즈니스 연속성이 저해되며, 데이터 무결성 훼손 및 보안 컴플라이언스 위반 리스크가 존재합니다.
🔗 관련 취약점·체이닝
- 취약점 유형: Use-After-Free (CWE-416).
- 체이닝 패턴(추정): 정보 유출(Information Leak) 결함과 체이닝될 경우, 메모리 주소를 미리 파악하여 ASLR을 우회하고 UAF를 통해 RCE로 연결하는 전형적인 메모리 오염 공격 패턴을 따를 가능성이 큽니다.
🔎 탐지
- 로그 지표: 애플리케이션 로그 내
Segmentation Fault,SIGSEGV또는 XML 파싱 관련 치명적 오류 메시지가 반복적으로 발생하는지 확인합니다. - 탐지 규칙 예시:
- WAF/IDS 패턴: 입력 데이터(Body, Multipart)에서 Schematron 관련 네임스페이스 및 특정 태그 패턴 탐지.
Pattern: /<sch:name\s+path=["'].*?["']\s*\/>/i
- SIEM 로직:
EventID=Crash AND ProcessName=*(libxml2_using_app)* AND ErrorCode=0xc0000005 (Access Violation)
- WAF/IDS 패턴: 입력 데이터(Body, Multipart)에서 Schematron 관련 네임스페이스 및 특정 태그 패턴 탐지.
- 오탐 시나리오 및 튜닝: 정상적인 Schematron 검증 파일 전송 시에도 탐지될 수 있습니다. 신뢰할 수 있는 송신처(IP) 화이트리스트를 적용하거나, 비정상적으로 긴
path속성 값에 대해 임계치를 설정하여 정밀도를 높입니다.
🛡️ 완화 방안
- 즉시(긴급 차단):
- WAF에서
<sch:name path=...>패턴이 포함된 XML 요청을 일시적으로 차단합니다. (난이도: 낮음 / 영향: 일부 정상 기능 제한 / 검증: 차단 로그 확인)
- WAF에서
- 단기(완화):
- 외부 입력 XML에 대한 엄격한 스키마 검증 및 크기 제한을 적용하여 비정상적인 XPath 구문 진입을 최소화합니다. (난이도: 중간 / 영향: 성능 저하 가능성 / 검증: 퍼징 테스트)
- 근본(해결):
libxml2라이브러리를 해당 취약점이 해결된 최신 버전으로 업데이트합니다. (난이도: 중간 / 영향: 서비스 재시작 필요 / 검증:ldd또는 패키지 매니저를 통한 버전 확인)
[분석 근거]
본 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인(신뢰도 1.0)되었으며, 실측 EPSS 값(0.00669, 백분위 0.47605)을 바탕으로 실제 야생 악용 가능성은 Moderate 수준으로 판단하였습니다. CVSS 점수는 9.1로 매우 높으나, KEV 미등재 및 낮은 EPSS 수치를 고려하여 규칙 기반 우선순위를 scheduled(이번 주 내 대응)로 결정하였습니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=9.1 · non-KEV · EPSS=0.00669 · exploit=moderate · in_scope=None