
Reprodutor e análise para CVE-2026-79986, uma path traversal no Apache Camel camel-azure-files em que nomes de listagem de compartilhamento escapam do diretório consultado.
Repositório de reprodução para a vulnerabilidade do Apache Camel em que o consumidor azure-files — que deriva da
mesma classe base RemoteFileConsumer que os demais consumidores de arquivos remotos e compõe o caminho remoto por meio de um
helper de concatenação simples — constrói o caminho remoto de cada arquivo consultado concatenando o diretório configurado com o
nome informado na listagem do share do Azure File, sem nenhuma verificação de contenção. Um nome de listagem que não seja um único
segmento de caminho, portanto, era resolvido fora do diretório consultado para recuperação e, com delete/move/preMove/
moveFailed/readLock=rename, para exclusão ou renomeação.
Este reprodutor é apenas para autores — veja abaixo — e é o irmão Azure-Files 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.
Assim, este repositório carrega a fiação exata do consumidor afetado (uma rota real de camel-azure-files, veja
AzureFilesRoute.java / AzureFilesRoutes.java), documenta o mecanismo e a correção, e delega a demonstração
executável de ponta a ponta aos reprodutores de FTP e SFTP acima.
| Runtime | Diretório | Stack |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-azure-files 4.22.0 (afetado; corrigido em 4.22.1) |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.29.0 + camel-quarkus-azure-files 3.29.0 (Camel 4.15.0, afetado) |
Ambos os módulos compilam e iniciam sem problemas sem credenciais do Azure (a rota é definida com autoStartup=false). Defina
-Daz.enabled=true com az.account/az.share/az.sharedKey para apontar a rota exata afetada para um share de arquivos do Azure
de sua propriedade.
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-azure-files (esquema azure-files) |
| 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 | A partir de 4.0.0 antes de 4.18.5, a partir de 4.19.0 antes de 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-79986.html
O consumidor azure-files 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 chega mais ao 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 em compartilhamentos cujas listagens não são totalmente confiáveis.
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.