[방어] 분석 — CVE-2025-49794
A critical Use-After-Free vulnerability in libxml2 (CVE-2025-49794) during XPath parsing of Schematron elements can lead to crashes or undefined behavior, requiring immediate input validation and library updates.
📋 요약
- 심각도 critical · CVSS 9.1 · EPSS 0.00669 · 악용난이도 moderate
🔍 공격 기법
- 트리거 조건:
libxml2라이브러리를 사용하여 XML을 파싱할 때, XML Schematron의<sch:name path="..."/>요소가 포함된 특정 XPath 구문을 처리하는 과정에서 Use-After-Free(UAF) 결함이 발생합니다. - 공격 단계:
- 초기 접근: 공격자가 조작된 XML 문서를 생성하여
libxml2를 사용하는 애플리케이션의 입력 인터페이스로 전송합니다. - 실행/영향: 파서가
<sch:name>요소의path속성을 처리하며 메모리 해제 후 해당 영역을 다시 참조함으로써 프로그램 크래시(DoS) 또는 추정: 임의 코드 실행(RCE)과 같은 정의되지 않은 동작을 유발합니다.
- 초기 접근: 공격자가 조작된 XML 문서를 생성하여
- 공격 표면: XML 입력을 받는 모든 엔드포인트, API 파라미터 및 파일 업로드 기능이 공격 경로가 됩니다.
- CVSS 벡터 분석:
AV:N/AC:L/PR:N/UI:N은 인증되지 않은 외부 공격자가 네트워크를 통해 특별한 사용자 상호작용 없이 매우 낮은 복잡도로 공격 가능함을 의미합니다.
악용 가능성: 본 취약점은 AV:N/AC:L/PR:N/UI:N 벡터를 가져 별도의 권한이나 사용자 상호작용 없이 네트워크를 통해 원격으로 트리거할 수 있어 공격 진입 장벽이 매우 낮습니다. 공격 표면은 libxml2 라이브러리를 사용하여 XML 문서를 파싱하는 모든 엔드포인트이며, 특히 <sch:name path="..."/> 요소가 포함된 Schematron XML 스키마를 처리하는 XPath 파싱 로직이 핵심 타겟입니다. 악의적으로 조작된 XML 문서를 입력값으로 전송하여 Use-After-Free(UAF) 상태를 유발함으로써 서비스 거부(DoS)나 정의되지 않은 동작을 일으킬 수 있습니다. EPSS 수치는 0.00669로 낮고 KEV에 등재되지 않아 현재 대규모의 자동화된 공격이 관측되지는 않았으나, 이는 이론적 위험도가 낮음을 의미하는 것이 아니라 실제 익스플로잇의 확산 속도가 아직 느린 상태임을 시사합니다. 결과적으로 공격 난이도는 매우 낮지만, 실질적인 악용 가능성은 해당 라이브러리를 통해 외부 XML 입력을 처리하는 애플리케이션의 노출 여부에 따라 결정되는 Moderate 수준으로 판단됩니다.
💥 영향 분석
- 기술적 위험:
- 서비스 중단(DoS): 메모리 오염으로 인한 프로세스 비정상 종료 및 시스템 크래시.
- 임의 코드 실행(RCE): 추정: UAF 특성상 메모리 레이아웃 조작이 가능하다면 공격자가 제어하는 코드가 실행될 가능성이 있습니다. (CVSS I:H/A:H 반영)
- 비즈니스 영향:
libxml2는 광범위하게 사용되는 라이브러리로, 영향을 받는 서비스의 가용성 상실 및 데이터 무결성 훼손으로 인한 비즈니스 연속성 저해가 예상됩니다.
🔗 관련 취약점·체이닝
- 유형/패턴: 메모리 관리 결함(UAF) $\rightarrow$ 추정: 메모리 레이아웃 조작(Heap Spraying 등) $\rightarrow$ 제어 흐름 탈취 $\rightarrow$ RCE로 이어지는 전형적인 체이닝 패턴을 보일 수 있습니다.
🔎 탐지
- 로그 지표:
- 애플리케이션 로그:
Segmentation fault,double free or corruption등의 메모리 오류 메시지. - WAF/IDS 로그: HTTP Request Body 내에
<sch:name및path=속성이 포함된 XML 페이로드.
- 애플리케이션 로그:
- 탐지 규칙:
- Rule 1 (WAF/IDS): XML 입력값 중 Schematron 네임스페이스와 특정 경로 요소 탐지
Condition:payload contains "<sch:name"ANDpayload contains "path="Regex:(?i)<sch:name\s+[^>]*path\s*=\s*["'][^"']*["']
- Rule 2 (SIEM/EDR):
libxml2를 사용하는 프로세스의 비정상 종료 모니터링Logic:process_name == "target_app"ANDevent_id == "crash"ANDfault_address == "unknown/invalid"
- Rule 1 (WAF/IDS): XML 입력값 중 Schematron 네임스페이스와 특정 경로 요소 탐지
- 오탐 튜닝: 정상적인 XML Schematron 검증 업무를 수행하는 서버에서는 오탐이 발생할 수 있습니다. 신뢰할 수 있는 내부 소스 IP(White-list)에서 오는 요청은 예외 처리하고, 입력값의 크기가 비정상적으로 크거나 반복적인 패턴이 있는지 확인하여 튜닝합니다.
🛡️ 완화 방안
- 즉시(긴급 차단): WAF/IPS에서
<sch:name태그가 포함된 XML 요청을 일시적으로 차단하거나 필터링합니다. (난이도: 낮음 / 영향: Schematron 기능 사용 불가 / 검증: 조작된 XML 전송 시 403 Forbidden 확인) - 단기(완화): 추정: 입력 단계에서 XML 스키마 검증을 강화하여 비정상적인
path속성값이 포함된 문서를 거부하도록 애플리케이션 레벨의 Validation 로직을 추가합니다. (난이도: 중간 / 영향: 약간의 성능 저하 가능 / 검증: 단위 테스트를 통한 입력값 차단 확인) - 근본(해결):
libxml2라이브러리를 해당 취약점이 해결된 최신 버전으로 업데이트하고 재빌드/배포합니다. (난이도: 중간 / 영향: 서비스 재시작 필요 / 검증:ldd또는 패키지 매니저를 통해 라이브러리 버전 확인)
[분석 근거]
본 리포트는 다중 소스 데이터의 일관성이 확인되어 신뢰도 1.0으로 작성되었습니다. 실측 EPSS 값은 0.00669(백분위 0.47605)로, 이론적 심각도(CVSS 9.1)에 비해 실제 야생에서의 악용 확률은 현재 Moderate 수준으로 낮게 측정되었습니다. 따라서 즉시 대응보다는 이번 주 내 처리하는 scheduled 우선순위로 결정되었으며, 이는 KEV 미등재 및 낮은 EPSS 수치를 근거로 한 규칙 기반 결정입니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=9.1 · non-KEV · EPSS=0.00669 · exploit=moderate · in_scope=None