Search

Apache Tika XXE CVE-2025-66516 취약점 분석

태그
PurpleHound
Apache
Property
5.png
작성날짜
2026/02/06

1. 개요

본 보고서는 Apache Tika의 CVE-2025-66516 XML External Entity Injection 취약점에 대해 다룬다. 공격자는 네트워크를 통해 어떠한 인증도 없이 조작된 HTTP PUT 요청을 전송해 시스템의 임의 파일 데이터를 읽거나 SSRF 공격으로 이어질 수 있다.
공격자는 이 취약점을 악용해 SSH 키와 같은 민감한 파일을 읽어 서버의 제어권을 탈취할 수도 있다. CVE-2025-66516 취약점은 현재 PoC 코드가 공개되어 In-the-Wild에서 활발히 악용될 가능성이 높기 때문에 즉시 보안 업데이트를 적용해야 한다.
본 보고서는 CVE-2025-66516 취약점의 근본 원인을 심층 분석하고, 이에 대한 방어 및 완화 전략을 제시한다.

2. 취약점 근본 원인 분석

항목
내용
취약점 번호
CVE-2025-66516
취약점 이름
Apache Tika XXE Vulnerability
CWE
Improper Restriction of XML External Entity Reference
취약점 영향
XML External Entity Injection
CVSS 3.1
9.8(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
Apache Tika는 업로드 된 문서(PDF, DOC, PPTX, XLSX 등)의 파일 타입을 감지하고, 해당 파일의 메타 데이터를 추출하는 프레임워크다. CVE-2025-66516 취약점은 Apache Tika가 PDF 파일에 포함된 XFA 문서를 처리하는 과정에서 발생한다.
public static XMLInputFactory getXMLInputFactory() { XMLInputFactory factory = XMLInputFactory.newFactory(); tryToSetStaxProperty(factory, XMLInputFactory.IS_NAMESPACE_AWARE, true); tryToSetStaxProperty(factory, XMLInputFactory.IS_VALIDATING, false); factory.setXMLResolver(IGNORING_STAX_ENTITY_RESOLVER); return factory; }
Java
복사
[코드 1] tika-core/src/main/java/org/apache/tika/utils/XMLReaderUtils.java: getXMLInputFactory 함수
[코드 1]은 CVE-2025-66516의 취약점이 발생하는 함수다. IGNORING_STAX_ENTITY_RESOLVER는 본래 외부 엔티티 무시 목적으로 작성 되었으나, IGNORING_STAX_ENTITY_RESOLVER가 반환할 것으로 기대했던 InputStream 타입이 아닌 String 타입으로 반환되어 JDK StAX 구현체는 외부 엔티티를 처리하고, XXE 공격으로 이어진다.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xdp:xdp [ <!ENTITY xxe SYSTEM "file:///path/to/the/file"> ]>
XML
복사
[코드 2] CVE-2025-66516 XFA 코드
[코드 2]는 CVE-2025-66516을 트리거할 수 있는 XFA 코드의 일부다. 공격자는 PDF의 XFA에 외부 엔티티를 삽입해 Apache Tika서버에 HTTP PUT으로 전송하고, 임의의 파일 데이터를 HTTP 응답으로 확인할 수 있다.
tryToSetStaxProperty(factory, XMLInputFactory.SUPPORT_DTD, false); tryToSetStaxProperty(factory, XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
Java
복사
[코드 3] CVE-2025-66516 패치
CVE-2025-66516 취약점은 [코드 3]와 같이 명시적으로 DTD(문서 타입 정의) 지원과 외부 엔티티를 비활성화 해 수정 되었다.
또한, Apache Software Foundation에서 배포하는 tika-server-standard.jar는 JDK 기본 StAX가 아닌 Woodstox라는 StAX를 사용하는데, 해당 StAX에서 외부 엔티티를 차단할 경우 취약점이 재현 되지 않을 수 있다.
CVE-2025-66516 시연 영상

3. 공격 영향

본 취약점을 성공적으로 악용할 경우, 공격자는 서버에 존재하는 임의의 파일을 읽을 수 있으며, 이는 다음과 같은 심각한 위협으로 이어질 수 있다.
민감 정보 유출: 공격자는 서버에 존재하는 임의 파일에 접근해 데이터를 탈취할 수 있다.
시스템 장악: 최악의 경우 공격자는 /etc/passwd 파일 또는 SSH 키 파일과 같은 민감한 정보를 읽어 서버의 제어 권한을 획득할 수 있다. 이를 통해 공격자는 서버의 데이터에 접근하고 시스템 설정을 임의로 변경, 추가 악성코드 감염 및 네트워크 수평 이동 등 심각한 결과를 초래할 수 있다.

4. 완화 및 권고사항

Product
취약점 영향 버전
Apache Tika core
1.13 ~ 3.2.1
Apache Tika parsers
1.13 ~ 1.28.5
Apache Tika PDF parser module
2.0.0 ~ 3.2.1
1.
즉각적인 보안 업데이트 적용: 본 보고서에서 분석한 취약점에 해당하는 Apache Tika 버전은 위의 표에 명시된 바와 같다. 해당 버전의 Apache Tika를 사용 중인 시스템은 즉시 보안 업데이트를 적용해야 한다. Apache Tika PDF parser module과 Apache Tika core를 동시 사용 중이라면 반드시 두 제품을 모두 업데이트 해야 한다.
2.
IDS/IPS를 통한 네트워크 접근 제어 및 공격 표면 감소: 가능하다면 Apache Tika의 서비스 포트(TCP/9998) 및 REST API 엔드포인트는 신뢰할 수 있는 네트워크 대역에서만 접근 가능하도록 방화벽 정책을 강화해 공격 표면을 감소 시켜야 한다. Apache Tika 서비스를 인터넷에 직접 노출 시키는 것은 본 취약점 외에도 예측하지 못한 다른 보안 위협에 시스템을 노출 시킬 수 있다.

5. 결론

CVE-2025-66516은 PDF 처리 모듈의 부적절한 XML 처리로 인해 발생한 XML 외부 엔티티 주입 취약점이다.
당사의 솔루션인 PurpleHound는 실전 기반 시나리오를 재구성하여 기업이 보유한 보안 장비와 시스템이 실제 공격에 얼마나 효과적으로 대응 가능한지 검증할 수 있도록 지원한다.
본 보고서에서 분석한 취약점 뿐만 아니라 다른 유형의 취약점, 악성코드 활동, 파일 시스템 조작 등 다양한 위협 시나리오를 직접 실행해보며 보안 인프라의 실효성을 객관적으로 확인할 수 있다

6. 참고자료