[단독분석] 분석 — CVE-2021-42260
CVE-2021-42260 is a high‑severity DoS flaw in TinyXML 2.3.2–2.6.2 that can be mitigated by applying the upstream patch or disabling parsing of untrusted XML data.
📋 요약
- 심각도 high · CVSS 7.5 · EPSS 0.03348 · 악용난이도 moderate
🔍 공격 기법
- 공격자는 특수하게 조작된 XML 문서를 TinyXML을 이용해 파싱하는 서비스에 전송합니다.
- 해당 XML은
TIXML_UTF_LEAD_0케이스를 포함하고 있어TiXmlParsingData::Stamp함수에서 무한 루프에 빠집니다. - 네트워크 접근이 필요 없으며(AV:N), 인증·사용자 상호작용도 요구하지 않으므로(N/A) 바로 서비스의 CPU 자원을 고갈시켜 가용성을 마비시킵니다.
악용 가능성: 이 취약점은 AV:N(네트워크)·AC:L(낮은 난이도)·PR:N(권한 없음)·UI:N(사용자 상호작용 없음)이라는 CVSS 벡터에 따라, 원격에서 별다른 사전 조건 없이 바로 악용할 수 있음을 의미합니다. 실제 공격자는 TinyXML 2.6.2 이하를 사용하고 있는 서비스에 조작된 XML 문서를 전송하면 TiXmlParsingData::Stamp 함수가 무한 루프에 빠져 해당 프로세스가 중단되므로, 서비스 가용성이 즉시 손상됩니다. EPSS 값이 0.03348(≈3 %)로 보고되어 있어, 이론적 심각도와는 별개로 향후 12개월 내에 실제 악용될 확률이 무시할 수 없을 정도로 존재합니다. KEV 목록에 등재되지 않았지만, EPSS가 보여주는 실측 위험성은 공격자가 상대적으로 낮은 비용으로 DoS를 달성할 수 있음을 시사합니다. 노출되는 공격 표면은 TinyXML 파서를 통해 외부 XML 데이터를 받아들이는 모든 엔드포인트(예: HTTP API, SOAP, RPC 등)이며, 해당 파서가 업데이트되지 않은 경우 전 세계적으로 광범위하게 영향을 받을 가능성이 있습니다. 따라서 이 취약점의 난이도는 “낮음”에 가깝지만, 실제 악용 가능성과 서비스 중단 위험을 고려하면 moderate 등급이 적절합니다.
💥 영향 분석
- 기술적 위험: 무한 루프에 진입하면 해당 프로세스가 응답하지 않게 되며, 시스템 전체 혹은 해당 애플리케이션 수준에서 서비스 거부(DoS)가 발생합니다.
- 비즈니스 리스크: 가용성 상실로 인한 서비스 중단·고객 불만, SLA 위반 위험이 존재합니다. 특히 TinyXML은 다수의 오픈‑소스 프로젝트와 상용 소프트웨어에 라이브러리 형태로 포함되어 있어(‘tinyxml_project tinyxml 2.3.2 – 2.6.2’, ‘debian debian_linux’) 공급망 영향 범위가 광범위합니다.
- 노출 규모: 다중 소스에서 일관성이 확인됐다([교차검증] 신뢰도 1.0) → 해당 버전을 사용 중인 모든 시스템이 잠재적 대상입니다.
- 악용 가능성: EPSS = 0.03348(백분위 0.87877, 등급 moderate)로 실측값이며, 현재 공개된 PoC는 없지만 ‘AV:N/AC:L’ 특성을 고려하면 원격·무차별 공격이 현실적일 수 있습니다([실측 악용예측]).
- 우선순위: CVSS 7.5와 비‑KEV 상태, EPSS 0.03348, moderate exploit 등급을 종합하여 이번 주 내(‘scheduled’) 대응이 권고됩니다([우선순위 결정]).
🔗 관련 취약점·체이닝
- XML 파서 전반에서 발견되는 무한 루프·메모리 소모형 DoS 취약점과 유사한 공격 경로를 가질 수 있습니다.
- TinyXML을 다른 라이브러리와 연계해 사용하는 경우, 해당 라이브러리의 입력 검증 로직이 우회될 경우 체인 형태로 확장될 가능성이 존재합니다(구체적인 CVE 번호는 확인되지 않음).
🔎 탐지
- 로그 기반:
TiXmlParsingData::Stamp호출이 비정상적으로 반복되는 로그 항목, 혹은 파싱 오류와 동시에 CPU 사용률 급등 기록을 모니터링합니다. - 네트워크 IDS: XML 시작 부분에 비표준 UTF‑lead 바이트(
\x00등) 패턴이 포함된 요청을 탐지하는 규칙을 적용할 수 있습니다. 예시 (간략화):bash1alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (2 msg:"Potential TinyXML DoS payload";3 content:"<?xml"; http_header;4 pcre:"/^\x00{1,2}/U"; # TIXML_UTF_LEAD_0 의심 패턴5 classtype:attempted-dos; sid:1000001; rev:1;6) - 호스트 기반: 프로세스 CPU 사용량이 짧은 시간에 급증하고, 해당 프로세스가 TinyXML 라이브러리를 로드한 경우 알림을 발생시킵니다.
🛡️ 완화 방안
- 즉시 조치
- 외부에서 제공되는 XML 입력을 차단하거나, 신뢰할 수 없는 소스로부터의 파싱을 중지합니다.
- 해당 애플리케이션에 타임아웃/샌드박스 레이어를 추가해 파싱 시간이 일정 한도를 초과하면 강제 종료하도록 설정합니다.
- 근본 해결
- TinyXML 2.6.3 이상(또는 upstream에서 제공하는 패치)으로 업데이트하고, Debian 계열이라면
apt-get update && apt-get upgrade libtinyxml*등 최신 보안 패키지를 적용합니다. - 라이브러리 사용이 불가피한 경우, 정적 분석 및 CI 파이프라인에 XML 파서 버전 검증을 포함시켜 재발 방지합니다.
- TinyXML 2.6.3 이상(또는 upstream에서 제공하는 패치)으로 업데이트하고, Debian 계열이라면
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.5 · non-KEV · EPSS=0.03348 · exploit=moderate · in_scope=None