
CVE-2026-79985에 대한 재현 도구 및 분석으로, Apache Camel camel-smb에서 공유 목록 이름이 디렉터리 격리를 우회하는 경로 순회 취약점이며, 영향을 받는 라우트와 수정 세부 정보를 포함합니다.
smb consumer가 폴링한 각 파일의 원격 경로를 구성할 때 설정된 디렉터리와 SMB 공유 목록에 보고된 이름을 연결하며, 격리 검사가 없는 Apache Camel 취약점의 재현 저장소입니다. SmbConsumer는 (RemoteFileConsumer를 통하지 않고) 목록 자체를 순회하면서 정확히 . 및 .. 항목만 건너뛰므로, 다른 형태로 traversal 세그먼트를 포함한 이름은 검사 없이 연결되었습니다 — 이는 검색 시 폴링 디렉터리 외부의 경로로 해석되며, delete/move/preMove/moveFailed/readLock=rename과 함께 사용될 경우 삭제 또는 이름 변경으로 이어집니다.
이 재현 저장소는 작성자 전용입니다 — 아래를 참조하십시오 — 그리고 실행 가능한 CVE-2026-79983 (
camel-ftp) 및 CVE-2026-79984 (camel-mina-sftp)의 SMB 형제 항목으로, 이들은 내장된 악성 서버를 대상으로 동일한 근본 원인과 수정을 종단 간으로 입증합니다.
권고문 자체에서 명시하듯이, SMB를 통해 이 문제에 도달하는 것은
"단일 경로 세그먼트가 아닌 목록 이름을 내보내는 서버를 필요로 하며, 이는 준수하는 SMB2 구현이 수행하지 않습니다. 노출은 이 스킴에 대한 입증된 개념 증명이 아니라 다른 원격 파일 consumer와 동일한 근거로 수정되었습니다."
이러한 이름을 내보내는 내장 가능한 악성 SMB 서버는 존재하지 않습니다 (FTP의 경우 Apache MINA FtpServer의 VFS를 그렇게 만들 수 있고, SFTP의 경우 Apache MINA SSHD의 getShortName을 재정의할 수 있는 것과는 다릅니다). 따라서 이 저장소는 정확히 영향을 받는 consumer 배선 (실제 camel-smb 라우트, SmbRoute.java / SmbRoutes.java 참조)을 포함하고 메커니즘과 수정 사항을 문서화하며, 실행 가능한 종단 간 입증은 위의 FTP 및 SFTP 재현 저장소로 미룹니다.
| 런타임 | 디렉터리 | 스택 |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-smb 4.22.0 (영향받음; 4.22.1에서 수정) |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.29.0 + camel-quarkus-smb 3.29.0 (Camel 4.15.0, 영향받음) |
두 모듈 모두 SMB 서버 없이도 컴파일되고 정상적으로 시작됩니다 (라우트는 autoStartup=false로 정의됨). smb.host/smb.share/smb.username/smb.password와 함께 -Dsmb.enabled=true를 설정하여 정확히 영향을 받는 라우트를 자체 SMB 서버로 지정하십시오.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack # prints the explanation + links to the runnable PoCs
docker compose down
| 속성 | 값 |
|---|---|
| 구성 요소 | camel-smb (smb 스킴) |
| CWE | CWE-22 (경로명의 제한된 디렉터리 제한 미흡) |
| 심각도 | HIGH |
| 공격 벡터 | 단일 경로 세그먼트가 아닌 공유 목록 이름(서버 제공) |
| 영향 | 읽기 — 그리고 delete/move/readLock=rename 사용 시 엔드포인트의 자격 증명을 사용하여 폴링된 디렉터리 외부의 파일을 삭제하거나 이름 변경 |
| 영향받는 버전 | 4.2.0부터 4.18.5 이전, 4.19.0부터 4.22.1 이전 |
| 수정된 버전 | 4.18.5, 4.22.1, 4.23.0 |
| JIRA | CAMEL-24487 |
| 크레딧 | Dilrevx from NSSL, SJTU |
권고문: https://camel.apache.org/security/CVE-2026-79985.html
SmbConsumer는 이제 다른 원격 파일 컨슈머와 동일한 포함 검사를 적용합니다. 폴링된 디렉터리를 벗어나는 확인된
경로는 경고와 함께 건너뛰므로, 순회 세그먼트를 포함한 목록 이름이 더 이상 검색/삭제/이름 변경 피연산자에
도달하지 않습니다.
filter/antInclude/include를 사용하여 컨슈머를 단일 세그먼트 이름만 허용하도록 제한하고, 목록이 완전히
신뢰되지 않는 서버에 대해서는 delete/move/preMove/moveFailed/readLock=rename 사용을 피하십시오.
가능한 경우 서버 계정을 폴링된 디렉터리로 제한하십시오.
이 저장소는 교육 및 방어 목적으로 게시됩니다. Apache Camel 사용자가 취약점을 이해하고, 영향을 받는지 확인하고, 업그레이드가 문제를 해결하는지 검증할 수 있도록 돕기 위함입니다. 소유하거나 운영하지 않는 시스템에 이 자료를 사용하지 마십시오.