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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-60093 — camel-azure-storage-datalake의 Apache Camel 경로 탐색 취약점(CVE-2026-60093)에 대한 개념 증명(PoC) 재현 코드로, downloadToFile을 통한 임의 파일 쓰기(arbitrary file write)를 시연합니다. | Kitploit
도구/GitHubGitHub/oscerd/cve-2026-60093
Vulnerability AnalysisExploitationWeb Application ExploitationPapers & ResearchLearning & Education
GitHuboscerd/cve-2026-60093

CVE-2026-60093

camel-azure-storage-datalake의 Apache Camel 경로 탐색 취약점(CVE-2026-60093)에 대한 개념 증명(PoC) 재현 코드로, downloadToFile을 통한 임의 파일 쓰기(arbitrary file write)를 시연합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-60093 — camel-azure-storage-datalake downloadToFile 경로 탐색

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

두 런타임 모두 영향을 받는 버전입니다(이 문제는 4.14.9 / 4.18.4 / 4.22.0에서 수정됨). 두 버전 모두 동일한 결함을 보여줍니다: camel-azure-storage-datalake 컴포넌트는 downloadToFile 작업을 통해 ADLS Gen2 파일을 로컬 파일시스템으로 다운로드할 수 있으며, fileDir 옵션으로 지정된 디렉터리에 파일을 씁니다. DataLakeFileOperations.downloadToFile는 Azure SDK가 보고한 원격 경로 이름을 fileDir과 그대로 결합하여(new File(fileDir, fileClientWrapper.getFileName())) 로컬 대상을 구성했습니다 — 어휘적 정규화가 없었고, 확인된 위치가 fileDir 내부에 유지되는지에 대한 검사도 없었습니다. 원격 이름은 라우트에 의해 제어되지 않습니다: 컨슈머가 파일시스템을 열거하고(DataLakeConsumer.createBatchExchangesFromPath) 모든 항목을 다운로드합니다. 따라서 ../ 세그먼트를 포함하는 경로 이름은 fileDir 외부로 확인됩니다(CWE-22, 경로 탐색 → 임의 파일 쓰기).

테스트 하네스에 대한 참고 사항. Azure Data Lake Gen2 API는 사용 가능한 로컬 에뮬레이터에서 구현되지 않습니다 — Azurite는 Gen2 listPaths 및 파일 작업에 대해 HTTP 400을 반환합니다. 따라서 이 재현 코드들은 정확히 취약한 코드(DataLakeFileOperations.downloadToFile → new File(fileDir, fileClientWrapper.getFileName()))를 직접 구동하며, getFileName()이 원격 이름을 반환하는 Data Lake 파일 클라이언트 래퍼를 제공합니다 — 컨슈머가 PathItem.getName()에서 읽은 이름을 그대로 제공하는 것과 동일합니다. 형제 컴포넌트인 camel-azure-storage-blob도 동일한 수정 사항을 공유하며(CVE-2026-66906), 해당 컴포넌트에서는 동일한 결함이 실제 Azurite 에뮬레이터를 대상으로 종단 간(end-to-end) 재현됩니다.

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:~
2) Download of a file named '../../../../../../tmp/pwned-60093.txt':
     resolved local target: /app/downloads/../../../../../../tmp/pwned-60093.txt
File written OUTSIDE it, at /tmp/pwned-60093.txt: true
    content: PWNED via path traversal — CVE-2026-60093
>>> PROVEN: DataLakeFileOperations.downloadToFile built the local target as new File(fileDir, fileName) ... : true

취약점 요약

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

수정 사항

이제 컨슈머는 다운로드 대상을 구성된 fileDir 디렉터리 내로 확인하고 제한하며(AzureFileNameHelper.resolveWithinDirectory 사용), 해당 디렉터리를 벗어나는 경로 이름을 거부합니다 — camel-azure-storage-blob에도 적용되는 동일한 수정 사항입니다(CVE-2026-66906).

면책 조항

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

도구 다운로드
런타임디렉터리스택
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-azure-storage-datalake 4.18.2
Camel Quarkuscamel-quarkus/Quarkus 3.36.0 + Camel Quarkus 3.36.0 (Camel 4.20.0 번들 포함)
속성값
컴포넌트camel-azure-storage-datalake (Spring Boot: camel-azure-storage-datalake-starter; Quarkus: camel-quarkus-azure-storage-datalake)
CWECWE-22 (경로명을 제한된 디렉터리로 제한하지 않음 — 경로 탐색)
공격 벡터경로 이름에 ../ 세그먼트가 포함된 Gen2 파일로, fileDir이 설정된 컨슈머가 다운로드함
영향구성된 fileDir 디렉터리 외부에 임의 파일 쓰기
영향을 받는 버전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-23942
공로자n0mi1k; Hiep Nguyen