[방어] 분석 — CVE-2025-49795
A NULL pointer dereference in libxml2 during XPath expression processing can lead to Denial of Service (DoS), requiring immediate input validation or WAF filtering for malicious XML patterns.
📋 요약
- 심각도 high · CVSS 7.5 · EPSS 0.00475 · 악용난이도 moderate
🔍 공격 기법
- 트리거 조건:
libxml2라이브러리가 XML 문서 내의 XPath 표현식을 처리하는 과정에서, 특정 구조의 악의적인 입력값이 전달될 때 유효하지 않은 메모리 주소(NULL)를 참조하여 프로세스가 크래시되는 결함입니다. - 공격 단계:
- 초기 접근: 공격자가
libxml2를 사용하는 애플리케이션의 엔드포인트로 특수하게 제작된 XML 페이로드를 전송합니다. - 실행: 서버 측 파서가 XPath 표현식을 해석하며 NULL 포인터 역참조(NULL pointer dereference)가 발생합니다.
- 영향: 애플리케이션 프로세스가 비정상 종료되어 서비스 거부(DoS) 상태가 됩니다.
- 초기 접근: 공격자가
- 공격 표면: XML 입력을 받아 XPath 쿼리를 수행하는 모든 API 엔드포인트, 설정 파일 업로드 기능, SOAP 기반 웹 서비스 등이 대상이 됩니다.
- CVSS 벡터 분석:
AV:N/AC:L/PR:N/UI:N으로, 인증되지 않은 외부 공격자가 네트워크를 통해 특별한 조건 없이 낮은 난이도로 공격을 수행할 수 있음을 의미합니다.
악용 가능성: 본 취약점의 공격 난이도는 매우 낮으며, 네트워크를 통해 인증 없이 원격에서 트리거할 수 있는 구조입니다(AV:N/AC:L/PR:N/UI:N). 공격자는 libxml2 라이브러리를 사용하여 XPath XML 표현식을 처리하는 모든 엔드포인트가 주요 공격 표면이 되며, 조작된 악성 XML 입력을 전송함으로써 NULL pointer dereference를 유발해 서비스 거부(DoS) 상태로 만들 수 있습니다. EPSS 수치는 0.00475로 낮고 KEV에 등재되지 않아 현재 대규모의 자동화된 공격이 관측되지는 않았으나, 이는 이론적 심각도와 별개로 실제 환경에서 XML 파싱 기능을 제공하는 애플리케이션의 노출 정도에 따라 즉시 악용될 수 있음을 의미합니다. 특히 외부 입력값이 XPath 쿼리로 직접 전달되는 파라미터나 프로토콜 인터페이스가 존재할 경우, 공격자는 특별한 권한 없이도 프로세스 크래시를 유도할 수 있습니다. 결과적으로 낮은 진입 장벽과 광범위한 라이브러리 사용처로 인해 가용성 측면의 악용 가능성이 상존하는 Moderate 등급의 위협입니다.
💥 영향 분석
- 기술적 위험: 서비스 중단(Denial of Service). 프로세스가 반복적으로 크래시될 경우 전체 시스템의 가용성이 상실됩니다. (C:N/I:N/A:H)
- 비즈니스 영향: XML 기반 데이터 교환이 필수적인 B2B 인터페이스나 내부 설정 로딩 프로세스 중단으로 인한 업무 마비 및 서비스 SLA 위반 위험이 있습니다.
🔗 관련 취약점·체이닝
- 추정: 단일 결함으로는 DoS에 그치지만, 자동 재시작 메커니즘이 없는 환경에서는 영구적인 서비스 불능 상태를 유발합니다.
- 추정: 다른 메모리 오염 취약점과 체이닝될 경우, 크래시 지점을 이용한 제어 흐름 조작 가능성을 배제할 수 없으나 본 CVE의 기본 성격은 가용성 침해입니다.
🔎 탐지
- 로그 지표:
- 애플리케이션 로그:
Segmentation fault,SIGSEGV등의 메모리 오류 메시지 발생 빈도 급증. - 웹 서버 로그: 동일 IP에서 짧은 시간 내에 대량의 XML POST 요청 전송 후 응답 코드 5xx 발생.
- 애플리케이션 로그:
- 탐지 규칙:
- Rule 1 (WAF/IDS): XPath 관련 특수 문자열 및 비정상적으로 복잡한 경로 표현식이 포함된 XML 페이로드 탐지.
Pattern:/(?:xpath|evaluate).*(?:\/|\/\/|\[).*$/i(추정: 요청 바디 내 XPath 쿼리 패턴 감시)
- Rule 2 (SIEM): 프로세스 크래시 로그와 외부 유입 트래픽의 상관관계 분석.
Logic:SELECT count(*) FROM logs WHERE event_id = 'SIGSEGV' GROUP BY source_ip HAVING count > threshold
- Rule 1 (WAF/IDS): XPath 관련 특수 문자열 및 비정상적으로 복잡한 경로 표현식이 포함된 XML 페이로드 탐지.
- 오탐 튜닝: 정상적인 복잡한 XPath 쿼리를 사용하는 내부 시스템 간 통신은 화이트리스트(Allowlist) 처리하여 오탐을 방지합니다.
🛡️ 완화 방안
- 즉시 (긴급 차단): WAF에서 XML 요청의 크기 제한(Max Body Size) 및 특정 XPath 예약어/특수문자 패턴에 대한 차단 룰 적용.
- 난이도: 낮음 / 운영 영향: 낮음(정상 쿼리 차단 가능성 존재) / 검증: 공격 페이로드 전송 시 403 Forbidden 확인.
- 단기 (완화):
libxml2를 사용하는 애플리케이션의 프로세스 감시 및 자동 재시작(Auto-restart/Watchdog) 설정 강화로 가용성 유지.- 난이도: 보통 / 운영 영향: 낮음 / 검증: 강제 종료 시 자동 복구 시간 측정.
- 근본 (해결):
libxml2라이브러리를 취약점이 해결된 최신 버전으로 업데이트 및 재빌드.- 난이도: 보통 / 운영 영향: 중간(라이브러리 의존성 확인 필요) / 검증: 패치 버전 적용 후 PoC 기반 크래시 여부 테스트.
[분석 근거] 본 리포트는 다중 소스에서 데이터 일관성이 확인되어 신뢰도가 1.0으로 확보된 정보를 바탕으로 작성되었습니다. 실측 EPSS 값은 0.00475(백분위 0.37792)로, 이론적 심각도(CVSS 7.5)에 비해 실제 야생에서의 악용 확률은 현재 낮은 수준(moderate)입니다. 이에 따라 KEV 미등재 및 낮은 EPSS 수치를 반영하여 우선순위를 scheduled(이번 주 내 대응)로 결정하였습니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.5 · non-KEV · EPSS=0.00475 · exploit=moderate · in_scope=None