
Reprodutor e análise para CVE-2026-79985, uma path traversal no Apache Camel camel-smb em que nomes de listagem de compartilhamentos contornam a contenção de diretórios, com rotas afetadas e detalhes da correção.
Repositório reprodutor para a vulnerabilidade do Apache Camel em que o consumer smb constrói o caminho remoto de cada
arquivo consultado concatenando o diretório configurado com o nome informado na listagem do compartilhamento SMB, sem
nenhuma verificação de contenção. O SmbConsumer percorre a listagem por conta própria (não através do RemoteFileConsumer), ignorando apenas as entradas exatas
. e .., de modo que um nome contendo segmentos de travessia em qualquer outra forma era concatenado sem verificação — resolvendo
para um caminho fora do diretório consultado para recuperação e, com delete/move/preMove/moveFailed/
readLock=rename, exclusão ou renomeação.
Este reprodutor é apenas para autores — veja abaixo — e é o equivalente SMB dos executáveis CVE-2026-79983 (
camel-ftp) e CVE-2026-79984 (camel-mina-sftp), que demonstram a mesma causa raiz e correção de ponta a ponta contra um servidor malicioso embutido.
Como o próprio aviso declara, alcançar o problema via SMB
"requer um servidor que emita um nome de listagem que não seja um único segmento de caminho, o que uma implementação SMB2 em conformidade não faz; a exposição foi corrigida com a mesma base dos outros consumers de arquivos remotos, em vez de a partir de uma prova de conceito demonstrada contra este esquema."
Não existe um servidor SMB malicioso embutível que emita tal nome (diferentemente do FTP, onde o VFS do Apache MINA FtpServer pode
ser configurado para isso, e do SFTP, onde o getShortName do Apache MINA SSHD pode ser sobrescrito). Portanto, este repositório carrega a
fiação exata do consumer afetado (uma rota real camel-smb, veja SmbRoute.java / SmbRoutes.java) e documenta
o mecanismo e a correção, deixando a demonstração executável de ponta a ponta para os reprodutores de FTP e SFTP acima.
| Runtime | Diretório | Stack |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-smb 4.22.0 (afetado; corrigido em 4.22.1) |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.29.0 + camel-quarkus-smb 3.29.0 (Camel 4.15.0, afetado) |
Ambos os módulos compilam e iniciam sem problemas sem um servidor SMB (a rota é definida com autoStartup=false). Defina
-Dsmb.enabled=true com smb.host/smb.share/smb.username/smb.password para apontar a rota exata afetada para
um servidor SMB de sua escolha.
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
| Propriedade | Valor |
|---|---|
| Componente | camel-smb (esquema smb) |
| CWE | CWE-22 (Limitação Imprópria de um Nome de Caminho a um Diretório Restrito) |
| Severidade | ALTA |
| Vetor de ataque | Um nome de listagem de compartilhamento (fornecido pelo servidor) que não é um único segmento de caminho |
| Impacto | Leitura — e, com delete/move/readLock=rename, exclusão ou renomeação — de arquivos fora do diretório consultado, usando as credenciais do endpoint |
| Versões Afetadas | Da 4.2.0 anterior à 4.18.5, da 4.19.0 anterior à 4.22.1 |
| Versões Corrigidas | 4.18.5, 4.22.1, 4.23.0 |
| JIRA | CAMEL-24487 |
| Crédito | Dilrevx da NSSL, SJTU |
Aviso: https://camel.apache.org/security/CVE-2026-79985.html
O SmbConsumer agora aplica a mesma verificação de contenção que os outros consumidores de arquivos remotos: um caminho resolvido que fica
fora do diretório consultado é ignorado com um aviso, de modo que um nome de listagem contendo segmentos de travessia não
alcança mais o operando de recuperação/exclusão/renomeação.
Restrinja o consumidor com filter/antInclude/include para aceitar apenas nomes de segmento único, e evite
delete/move/preMove/moveFailed/readLock=rename contra servidores cujas listagens não são totalmente confiáveis. Quando
possível, restrinja a conta do servidor ao diretório consultado.
Este repositório é publicado para fins educacionais e defensivos: para ajudar os usuários do Apache Camel a entender a vulnerabilidade, verificar se são afetados e confirmar que a atualização a resolve. Não use este material contra sistemas que você não possui ou opera.