Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-66907 — Apache Camel camel-google-storage 경로 탐색(CVE-2026-66907)에 대한 개념 증명 재현기로, downloadFileName을 통한 임의 파일 쓰기를 시연하며 영향을 받는 버전 및 수정된 버전 세부 정보를 포함합니다. | Kitploit
도구/GitHubGitHub/oscerd/cve-2026-66907
Vulnerability AnalysisExploitationWeb SecurityPapers & ResearchLearning & Education
GitHuboscerd/cve-2026-66907

CVE-2026-66907

Apache Camel camel-google-storage 경로 탐색(CVE-2026-66907)에 대한 개념 증명 재현기로, downloadFileName을 통한 임의 파일 쓰기를 시연하며 영향을 받는 버전 및 수정된 버전 세부 정보를 포함합니다.

저장소 보기
9시간 42분 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-66907 — camel-google-storage downloadFileName 경로 탐색

동일한 Apache Camel 취약점에 대한 실행 가능한 PoC 재현 코드로, 런타임별로 하나씩 제공됩니다:

두 버전 모두 영향을 받는 버전입니다(문제는 4.14.9 / 4.18.4 / 4.22.0에서 수정됨). 둘 다 동일한 결함을 보여줍니다: camel-google-storage 컨슈머가 downloadFileName이 디렉터리일 때 버킷 객체를 로컬 파일시스템으로 다운로드하며, 원격 객체 이름을 여기에 덧붙여 로컬 대상을 구성합니다(downloadFileName + "/${file:name}"). ${file:name} 토큰은 객체 이름을 그대로 반환하며(경로를 제거하는 ${file:onlyname}과는 다름), 그 결과는 정규화 없이, 그리고 대상이 설정된 디렉터리 안에 머무르는지에 대한 검사 없이 new File(result) / blob.downloadTo(file.toPath())에 전달되었습니다. 객체 이름은 라우트에 의해 제어되지 않습니다 — 컨슈머는 버킷을 나열하고 모든 객체를 다운로드합니다 — 따라서 이름에 ../ 세그먼트가 포함된 객체는 downloadFileName 밖에 기록됩니다(CWE-22, 경로 탐색 → 임의 파일 쓰기).

각 하위 디렉터리는 자체적으로 완결되어 있습니다(자체 Dockerfile, fake-gcs-server 에뮬레이터를 실행하는 docker-compose.yml, 그리고 README 포함). 간단히 말해, 둘 중 어느 쪽이든:

root@kitploit:~
cd camel-spring-boot   # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

영향을 받는 빌드에서의 예상 출력(두 변형 모두):

root@kitploit:~
Files inside the intended download directory /app/downloads:
    - report.txt
File written OUTSIDE it, at /tmp/pwned-66907.txt: true
    content: PWNED via path traversal — CVE-2026-66907
>>> PROVEN: the object name's ../ segments escaped the configured downloadFileName directory ... : true

취약점 요약

보안 권고: https://camel.apache.org/security/CVE-2026-66907.html

수정 내용

이제 컨슈머는 해석된 경로를 정규화하고, 그 경로가 설정된 downloadFileName 디렉터리 안에 머무르는지 단언합니다(GoogleCloudStorageFileNameHelper.assertWithinDirectory를 통해). 이를 벗어나려는 객체 이름은 거부됩니다.

에뮬레이터 참고 사항

docker-compose.yml은 fake-gcs-server를 -backend memory로 실행합니다. 그러면 객체 이름이 불투명한 맵 키로 유지되므로 ../가 포함된 이름도 보존됩니다. 기본 파일시스템 백엔드에서는 ../가 해석되어 객체를 나열할 수 없게 됩니다.

고지 사항

이 저장소는 교육 및 방어 목적으로 게시되었습니다: Apache Camel 사용자가 취약점을 이해하고, 자신이 영향을 받는지 확인하며, 업그레이드를 통해 해결되는지 확인할 수 있도록 돕기 위해서입니다. 기록되는 파일은 /tmp 아래의 무해한 마커입니다. 소유하거나 운영하지 않는 시스템에 이 자료를 사용하지 마십시오.

도구 다운로드
런타임디렉터리스택
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-google-storage 4.18.2
Camel Quarkuscamel-quarkus/Quarkus 3.36.0 + Camel Quarkus 3.36.0 (Camel 4.20.0을 번들로 포함)
속성값
구성 요소camel-google-storage (Spring Boot: camel-google-storage-starter; Quarkus: camel-quarkus-google-storage)
CWECWE-22 (제한된 디렉터리의 경로명에 대한 부적절한 제한 — 경로 탐색)
공격 벡터이름에 ../ 세그먼트가 포함된 버킷 객체 — downloadFileName이 디렉터리로 설정된 상태에서 컨슈머가 이를 다운로드함
영향설정된 다운로드 디렉터리 밖에 임의 파일 쓰기
영향 받는 버전4.0.0부터 4.14.9 이전, 4.15.0부터 4.18.4 이전, 4.19.0부터 4.22.0 이전
수정된 버전4.14.9, 4.18.4, 4.22.0
JIRACAMEL-24279
발견자n0mi1k