Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-88901 — Apache Camel camel-smooks의 XXE(CWE-611) 취약점인 CVE-2026-88901을 재현하는 실행 가능한 Spring Boot 개념 증명으로, 취약 버전과 패치 버전의 대조 실행을 포함합니다. | Kitploit
도구/GitHubGitHub/oscerd/cve-2026-88901
Defensive ToolsVulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityLearning & Education
GitHuboscerd/cve-2026-88901

CVE-2026-88901

Apache Camel camel-smooks의 XXE(CWE-611) 취약점인 CVE-2026-88901을 재현하는 실행 가능한 Spring Boot 개념 증명으로, 취약 버전과 패치 버전의 대조 실행을 포함합니다.

저장소 보기
52일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-88901 — camel-smooks: XML 외부 엔티티(XXE) 처리

Smooks 데이터 포맷(.unmarshal().smooks(...))과 Smooks 컴포넌트(smooks:)가 수신 XML 본문을 Smooks가 기본적으로 해석하는 리더(Woodstox SAX 파서)로 파싱하여 외부 일반 엔티티와 파라미터 엔티티를 해석하고 외부 DTD를 로드하며, camel-smooks는 다른 Camel XML 컴포넌트들이 적용하는 파서 강화 조치를 전혀 적용하지 않았던 Apache Camel 취약점에 대한 실행 가능한 개념 증명 재현기입니다. 따라서 XML 문서에 선언된 외부 서브셋을 가진 DOCTYPE 또는 외부 일반 엔티티는 본문이 언마샬링되는 동안 해석되고 확장되며, 해석된 내용은 결과에 바인딩됩니다. XML이 camel-smooks 데이터 포맷이나 엔드포인트에 도달하는 외부 발신자는 Camel 프로세스가 읽을 수 있는 파일을 읽거나, 프로세스가 내부 호스트로 요청을 보내도록 만들 수 있습니다(CWE-611). 기본값이 아닌 옵션은 필요하지 않습니다 — 외부 엔티티 해석이 기본 동작이었습니다.

Spring Boot 전용. 이 재현기는 단일 Camel Spring Boot 모듈을 제공합니다. camel-smooks에는 camel-quarkus-smooks 확장이 없으므로 재현할 Quarkus 대응물이 없습니다. Spring Boot 모듈은 영향을 받는 동작 및 수정된 동작을 보여줍니다.

런타임디렉터리스택
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-smooks 4.22.0 (영향받음; 4.22.1에서 수정)

시연 내용

드라이버는 수정 사항 자체의 회귀 테스트(SmooksDataFormatXmlSecurityTest)를 그대로 따릅니다. 무해한 마커 파일이 임시 디렉터리에 작성되고, XML <customer> 문서가 기본 smooks-config.xml(문서를 Customer 빈으로 바인딩)과 함께 실제 SmooksDataFormat을 통해 언마샬링됩니다. 문서의 firstName은 마커 파일을 가리키는 외부 엔티티입니다:

<!DOCTYPE customer [<!ENTITY xxe SYSTEM "file:///…/secret.txt">]>
<customer><firstName>&xxe;</firstName>…</customer>
  • 영향받음: 엔티티가 해석되므로 마커 파일의 내용이 Customer.firstName에 바인딩됩니다 — 파일이 언마셜된 빈으로 유출됩니다.
  • 수정됨: 본문이 강화된 DocumentBuilder(외부 엔티티 및 외부 DTD 로딩 비활성화)로 사전 파싱되므로, 엔티티가 해석되지 않고 마커가 절대 나타나지 않습니다.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: firstName = the marker file content; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-88901-smooks-xxe-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: firstName null, marker not leaked; >>> Not exploited

취약점 요약

속성값
구성 요소camel-smooks (Smooks 데이터 형식 및 구성 요소)
CWECWE-611 (XML 외부 엔티티 참조의 부적절한 제한)
심각도HIGH
공격 벡터외부 발신자가 기본 XML 리더를 사용하는 camel-smooks 데이터 형식 또는 엔드포인트에 의해 언마샬링되는 XML 메시지 본문을 제공함
영향Camel 프로세스가 읽을 수 있는 로컬 파일 읽기; 문서에 명시된 내부 호스트로의 SSRF
영향받는 버전4.7.0부터 4.18.5 이전, 4.19.0부터 4.22.1 이전
수정된 버전4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24677
보고자h1ei1

권고문: https://camel.apache.org/security/CVE-2026-88901.html

수정 내용

camel-smooks는 이제 FEATURE_SECURE_PROCESSING이 설정되고 외부 일반 엔티티, 외부 파라미터 엔티티 및 외부 DTD 로딩이 비활성화된 javax.xml.parsers.DocumentBuilder로 신뢰할 수 없는 XML을 사전 파싱한 후, 그 결과로 생성된 DOM을 Smooks에 전달합니다. 이는 XmlConverter 및 기타 Camel XML 구성 요소에서 사용하는 보안 구성과 일치합니다. 이 강화 조치는 Smooks 구성이 기본 리더로 XML을 파싱할 때만 적용됩니다(따라서 EDI, CSV, JSON 및 사용자 정의 리더 구성과 마샬링 방향은 변경되지 않음). 기본적으로 비활성화된 새로운 allowExternalEntities 옵션은 신뢰할 수 있는 레거시 구성에 대해 이전 동작을 복원합니다.

업그레이드할 수 없는 경우 완화 조치

신뢰할 수 없는 발신자로부터 수신한 XML에는 camel-smooks를 적용하지 마십시오.

면책 조항

이 저장소는 교육 및 방어 목적으로 게시됩니다. 즉, Apache Camel 사용자가 취약점을 이해하고, 영향을 받는지 확인하며, 업그레이드가 문제를 해결하는지 확인할 수 있도록 돕기 위한 것입니다. "secret" 파일은 재현 프로그램 자체가 임시 디렉터리에 생성하며 무해한 마커 문자열만 포함합니다. 이 파일은 검사 후 삭제됩니다. 소유하거나 운영하지 않는 시스템에 이 자료를 사용하지 마십시오.

도구 다운로드