CVE-2026-66906
Apache Camel: Camel-Azure-Storage-Blob: downloadBlobToFile 작업이 원격 blob 이름에서 로컬 다운로드 대상을 구성된 fileDir로 제한하지 않고 생성했습니다
- 게시됨
- 2026. 8. 24.
- 업데이트됨
- 2026. 8. 25.
- CNA 할당 중
- apache
- 증거 관찰됨
- 2026. 8. 24.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N낮음 · 다음 30일
- 백분위수
- 43.6%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
상대 경로 탐색 취약점이 Apache Camel Azure Storage Blob 구성 요소에 존재합니다. 이 문제는 Apache Camel 4.0.0 이상 4.14.9 미만, 4.15.0 이상 4.18.4 미만, 4.19.0 이상 4.22.0 미만 버전에 영향을 미칩니다. camel-azure-storage-blob 구성 요소는 downloadBlobToFile 작업을 통해 Azure Storage blob을 로컬 파일 시스템에 다운로드할 수 있으며, 프로듀서와 컨슈머 모두에서 사용할 수 있는 것으로 문서화된 fileDir 엔드포인트 옵션이 지정하는 디렉터리에 파일을 씁니다. BlobOperations.downloadBlobToFile은 Azure SDK가 보고한 원격 blob 이름을 fileDir에 그대로 결합하여 로컬 대상을 구성했고(new File(fileDir, client.getBlobName())), 결과를 SDK 다운로드 호출에 직접 전달했습니다. 경로 정규화가 없었고 확인된 위치가 fileDir 내부에 유지되는지에 대한 검사도 없었습니다. blob 이름은 라우트가 제어하는 데이터가 아닙니다. 컨슈머는 BlobConsumer.createBatchExchangesFromContainer에서 컨테이너를 열거하는데, 이 메서드는 blob을 나열하고 BlobItem.getName()이 반환한 이름을 그대로 사용하여 항목별로 하나의 exchange를 생성하며 기본적으로 이름 필터링을 적용하지 않습니다. 따라서 상위 디렉터리 세그먼트를 포함하는 blob 이름은 구성된 fileDir 외부의 위치로 확인되어, 소비되는 컨테이너에 존재하는 이름에 영향을 줄 수 있는 사람이면 누구나 Camel 프로세스의 권한으로 원하는 위치에 파일을 생성하거나 덮어쓸 수 있게 됩니다. 프로세스가 쓸 수 있는 대상에 따라 다운로드 디렉터리 외부의 파일을 덮어쓰는 것은 해당 파일의 무결성 손실을 넘어서는 피해로 확대될 수 있습니다. Azure Storage blob 컨테이너는 blob 이름이 불투명한 키인 플랫 네임스페이스를 사용하므로, 그러한 세그먼트를 포함하는 이름도 주어진 그대로 저장되고 나열됩니다. fileDir 옵션은 일반적인 common-group 구성 매개변수이며 보안 표시가 없으므로, 해당 값이 격리 경계로 강제되지 않고 있다는 사실을 사용자에게 알려 주는 신호가 없었습니다. Camel의 다른 파일 다운로드 컨슈머(camel-file, camel-ftp, camel-smb, camel-mina-sftp, camel-azure-files)는 이미 경로 세그먼트 경계 검사를 사용하여 로컬 다운로드를 구성된 디렉터리로 제한했지만, camel-azure-storage-blob 다운로드 경로는 이 조치에 포함되지 않았습니다. 사용자는 이 문제를 수정한 4.22.0 버전으로 업그레이드하는 것이 좋습니다. 4.14.x LTS 릴리스 스트림을 사용 중이라면 4.14.9로 업그레이드하는 것이 좋습니다. 4.18.x 릴리스 스트림을 사용 중이라면 4.18.4로 업그레이드하는 것이 좋습니다. 즉시 업그레이드할 수 없는 배포 환경에서는 regex 엔드포인트 옵션을 사용하여 컨슈머가 처리할 이름을 제한하십시오. 이 옵션은 나열된 각 blob 이름에 전체 문자열 일치로 적용되므로, 단순한 단일 세그먼트 이름만 허용되고 경로 구분자나 상위 디렉터리 세그먼트를 포함하는 이름은 exchange가 생성되기 전에 걸러집니다. prefix 옵션은 서버 측 목록을 추가로 좁힐 수 있습니다. 단, 둘 다 설정된 경우 regex가 우선하며 prefix는 무시됩니다. 또는 신뢰할 수 없는 컨테이너에서는 downloadBlobToFile 작업을 사용하지 말고, 원격 목록에서 가져온 파일 이름 대신 라우트가 직접 제어하는 파일 이름으로 라우트의 페이로드를 쓰십시오. 심층 방어 차원에서 외부에서 쓰기 가능한 컨테이너의 blob 이름을 신뢰할 수 없는 입력으로 취급하고, 이들로부터 로컬 파일 시스템 경로를 유도하지 마십시오.
소스
1책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.