CVE-2026-79986
Apache Camel: camel-azure-files resolvia o caminho remoto de um arquivo consultado a partir do nome informado na listagem do diretório do servidor sem restringi-lo ao diretório que estava sendo consultado, de modo que uma entrada de listagem contendo segmentos de travessia poderia ser movida para fora
- Publicado
- 19 de out. de 2026
- Atualizado
- 20 de out. de 2026
- Atribuindo CNA
- apache
- Evidência observada
- 17 de out. de 2026
CVSS primário
cvelist · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:NResumo
Vulnerabilidade de Limitação Imprópria de um Nome de Caminho a um Diretório Restrito ('Path Traversal') no componente Apache Camel Azure Files. Este problema afeta o Apache Camel: de 4.0.0 antes de 4.18.5, de 4.19.0 antes de 4.22.1. Os consumidores remote-file do Camel consultam um diretório em um servidor remoto e constroem o caminho remoto absoluto de cada arquivo concatenando o diretório configurado com o nome do arquivo informado na listagem de diretório do servidor. Essa concatenação (FtpUtils.absoluteFilePath e GenericFileConsumer) não aplicava nenhuma normalização lexical nem verificava se o resultado permanecia dentro do diretório consultado, e o caminho resultante tornava-se o operando de todas as operações remotas subsequentes sobre o arquivo: recuperação (FtpOperations.retrieveFile / SftpOperations, alcançada a partir de GenericFileConsumer, onde o nome de recuperação é obtido literalmente de GenericFile.getAbsoluteFilePath), exclusão quando delete=true (GenericFileDeleteProcessStrategy) e renomeação quando move, preMove, moveFailed ou readLock=rename está configurado (GenericFileProcessStrategySupport e GenericFileRenameExclusiveReadLockStrategy). Nem isValidFile nem isMatched realizavam qualquer verificação de contenção. Uma entrada de listagem que não seja um único segmento de caminho, portanto, resolvia para um caminho fora do diretório de consulta configurado, fazendo com que o Camel lesse, excluísse ou renomeasse arquivos fora dele usando as próprias credenciais do endpoint. Um nome de listagem não é um dado controlado pela rota. Ele é fornecido pelo servidor remoto, e o canal de controle FTP não possui nenhuma proteção de integridade, de modo que um atacante no caminho pode reescrever uma resposta LIST sem possuir quaisquer credenciais; um servidor comprometido, malicioso ou multi-inquilino, ou um servidor apoiado por um sistema de arquivos virtual, pode emitir tal nome diretamente. A recuperação é alcançável em uma configuração padrão de consumidor, uma vez que os consumidores remotos baixam todos os arquivos listados; a exclusão e a renomeação exigem adicionalmente uma das opções de disposição acima, todas comuns. A fuga do diretório que o Camel foi configurado para consultar é incondicional, enquanto a fuga do limite da própria conta do servidor depende adicionalmente de o servidor confinar a conta. A opção jailStartingDirectory, documentada como restringindo o Camel ao diretório inicial e habilitada por padrão, regia as gravações do produtor e, desde o trabalho de contenção do localWorkDirectory, os downloads do consumidor para o diretório de trabalho local — mas não restringia este operando remoto, de modo que seu nome e descrição alegavam um limite que não era aplicado aqui. O mesmo ponto de entrada já havia sido reconhecido no lado local: o caminho de download do localWorkDirectory foi restringido para que um nome de arquivo remoto contendo segmentos de diretório pai não pudesse resolver para fora do diretório de trabalho local. O operando remoto era a metade restante dessa superfície. Este artefato fornece o esquema azure-files. Seu consumidor deriva da mesma classe base RemoteFileConsumer e compunha o caminho remoto por meio de um auxiliar de concatenação simples, herdando assim a mesma resolução irrestrita. Alcançá-lo requer um nome de listagem que não seja um único segmento de caminho, o que o serviço REST do Azure Files normalmente não retorna; a exposição foi corrigida com a mesma base dos demais consumidores remote-file, e não a partir de uma prova de conceito demonstrada contra este esquema. Atualize para o Apache Camel 4.23.0, que corrige o problema. Usuários do fluxo de versões 4.22.x devem atualizar para 4.22.1. Usuários do fluxo de versões LTS 4.18.x devem atualizar para 4.18.5. O fluxo 4.14.x atingiu o fim de vida e não recebe esta correção; os usuários dele devem migrar para um fluxo de versões suportado.
Uso responsável
Use informações de vulnerabilidade apenas em sistemas que você possui ou está autorizado a testar. O Kitploit vincula-se a metadados de pesquisa pública e não armazena código de exploração ou cargas maliciosas.