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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-78163 — Apache Camel camel-docling의 CVE-2026-78163에 대한 실행 가능한 개념 증명(PoC) 재현 도구로, 검증되지 않은 String 본문 입력을 통한 SSRF 및 로컬 파일 노출을 시연하며, 수정된 빌드 대조군을 포함합니다. | Kitploit
도구/GitHubGitHub/oscerd/cve-2026-78163
Vulnerability AnalysisExploitationWeb Application ExploitationLearning & Education
GitHuboscerd/cve-2026-78163

CVE-2026-78163

Apache Camel camel-docling의 CVE-2026-78163에 대한 실행 가능한 개념 증명(PoC) 재현 도구로, 검증되지 않은 String 본문 입력을 통한 SSRF 및 로컬 파일 노출을 시연하며, 수정된 빌드 대조군을 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-78163 — camel-docling: 검증되지 않은 본문 입력 소스 (SSRF + 로컬 파일 노출)

DoclingProducer가 String 메시지 본문의 접두사를 검사하여 그 의미를 결정하던 Apache Camel 취약점에 대한 실행 가능한 개념 증명(PoC) 재현 도구입니다:

  • http:// 또는 https://로 시작하는 본문은 Docling에 가져올 원격 URL로 전달되었고(SSRF),
  • /로 시작하는(또는 백슬래시를 포함하는) 본문은 로컬 파일시스템에서 읽혔습니다(파일 노출).

모드는 단일 해석을 고정할 수 있는 엔드포인트 옵션 없이 암묵적으로 선택되었으며, Camel 헤더 네임스페이스와 달리 메시지 본문은 HeaderFilterStrategy에 의해 필터링되지 않습니다. 따라서 "본문으로 도착하는 텍스트를 변환한다"는 의미의 라우트가, 공격자가 제어하는 텍스트가 해당 접두사 중 하나로 시작할 때마다 조용히 원격 리소스 페처나 로컬 파일 리더로 변모했습니다.

런타임디렉터리스택보여주는 내용
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-docling 4.22.0 (영향받음; 4.22.1에서 수정)SSRF 및 파일 노출, 그리고 수정된 빌드 대조군
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-docling 3.29.0 (Camel 4.15.0, 영향받음)파일 노출만 (참고 사항 참조)

버전 범위. 로컬 파일 노출 싱크는 camel-docling이 4.15.0에 도입된 이래 존재해 왔으며, 원격 URL 싱크는 docling-serve 지원과 함께 4.16.0에 추가되었습니다. 최신 Camel Quarkus(3.29.0)는 Camel 4.15.0을 번들로 포함하므로, 해당 모듈은 파일 노출만 시연합니다. 수정 사항은 Camel 4.18.5 / 4.22.1 / 4.23.0에 포함되어 출시됩니다. Spring Boot 모듈은 영향받는 빌드(4.22.0)와 수정된 빌드(4.22.1)를 모두 실행하므로 패치된 동작도 시연합니다. 아직 수정된 Camel을 번들로 포함한 Camel Quarkus 릴리스는 없습니다.

시연 내용

두 재현 도구 모두 실제 Docling 설치가 필요하지 않습니다. 작은 가짜 docling CLI(fake-docling/docling)가 바이너리를 대신하여, 실제 바이너리가 프로듀서가 제공한 입력으로 무엇을 할지 — URL을 가져오거나 파일을 읽는 것 — 를 가시화합니다. 이는 무해합니다. 처리하라고 지시받은 내용을 그대로 출력하고 자신의 호출을 로그로 기록할 뿐입니다. 이 CVE의 핵심은 공격자가 제공한 본문이 아무런 옵트인 없이 그 인자에 도달한다는 점입니다.

Spring Boot 앱은 또한 127.0.0.1:9099에서 내부 전용 HTTP 엔드포인트를 실행하며(포트 8080만 게시되므로 외부 클라이언트는 9099에 직접 접근할 수 없음) 로컬 비밀 파일도 가지고 있습니다. 공격자는 텍스트만 전송합니다:

  • SSRF: 본문 http://127.0.0.1:9099/internal-secret → 서버 측 docling 호출이 내부 엔드포인트를 가져오고 그 비밀이 호출자에게 반환됩니다.
  • 파일 노출: 본문 /tmp/cve-2026-78163-secret.txt → 로컬 파일이 읽혀 반환됩니다.

영향받는 빌드에서는 둘 다 성공하고, 수정된 빌드에서는 둘 다 이를 활성화하는 데 필요한 옵션(allowUrlSource / allowFilePathSource)을 명시한 IllegalArgumentException과 함께 거부되며 docling은 결코 호출되지 않습니다.

cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

영향을 받은 Spring Boot 빌드에서 예상되는 출력:

[1] SSRF — sending body = http://127.0.0.1:9099/internal-secret
>>> PROVEN SSRF: the server-side docling invocation fetched the attacker-controlled internal URL.
>>>   internal victim saw: [GET /internal-secret]
>>>   content returned to the caller:
      | INTERNAL-SECRET-DATA (only reachable from inside the deployment)

[2] File disclosure — sending body = /tmp/cve-2026-78163-secret.txt
>>> PROVEN file disclosure: the attacker-named local file was read and returned.
      | TOP-SECRET-FILE-CONTENT (local file an attacker should not be able to read)

취약점 요약

속성값
구성 요소camel-docling (camel-docling-starter / camel-quarkus-docling)
CWECWE-918 (SSRF), CWE-22 (경로 순회), CWE-200 (정보 노출)
심각도MEDIUM
공격 벡터docling 엔드포인트로 전달되는 String 메시지 본문으로, 그 접두사가 URL 가져오기 또는 파일 읽기 싱크를 선택하며, 본문은 HeaderFilterStrategy의 적용을 받지 않음
영향공격자가 선택한 URL(내부 서비스)의 서버 측 가져오기 및 로컬 파일 노출
영향받는 버전4.15.0부터 4.18.5 이전, 4.19.0부터 4.22.1 이전 (파일 노출은 4.15.0부터, URL 싱크는 4.16.0부터)
수정된 버전4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24422
크레딧Li Zhiyao (BUPT)

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

수정 내용

이제 String 본문은 기본적으로 문서 자체로 취급됩니다. 두 가지 위치 해석 방식은 새로운 엔드포인트 옵션인 allowUrlSource와 allowFilePathSource(둘 다 기본값 false)를 통해 옵트인 방식이 되었습니다. 그렇지 않으면 URL이나 경로처럼 보이는 본문은 이를 활성화할 옵션의 이름을 명시한 IllegalArgumentException과 함께 거부됩니다. 추가로 inputBaseDirectory 옵션은 로컬 입력 경로를 구성된 디렉터리로 제한합니다. 타입이 지정된 본문(File, byte[], InputStream)과 CamelDoclingInputFilePath 헤더는 이미 그 의미를 명시하고 있으므로 제한되지 않습니다(단, inputBaseDirectory의 적용은 계속 받습니다).

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

외부에서 유입된 메시지 본문을 docling 엔드포인트로 라우팅하지 마십시오. 타입이 지정된 본문 (File, byte[], InputStream) 또는 CamelDoclingInputFilePath 헤더를 통해 문서를 전달하여 본문이 접두사 해석의 대상이 되지 않도록 하십시오.

면책 조항

이 저장소는 교육 및 방어 목적으로 게시되었습니다. Apache Camel 사용자가 취약점을 이해하고, 영향을 받는지 확인하며, 업그레이드가 문제를 해결하는지 검증할 수 있도록 돕기 위함입니다. 가짜 docling CLI와 "secrets"는 동작하지 않는 로컬 픽스처입니다. 소유하거나 운영하지 않는 시스템에 이 자료를 사용하지 마십시오.

도구 다운로드