Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-95628 — Prova de conceito reproduzível para CVE-2026-95628, uma lacuna de validação de caminho absoluto no Apache Camel camel-docling, com harnesses Spring Boot e Quarkus e verificação de correção. | Kitploit
Ferramentas/GitHubGitHub/oscerd/cve-2026-95628
Ferramentas DefensivasAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebAprendizado e Educação
GitHuboscerd/cve-2026-95628

CVE-2026-95628

Prova de conceito reproduzível para CVE-2026-95628, uma lacuna de validação de caminho absoluto no Apache Camel camel-docling, com harnesses Spring Boot e Quarkus e verificação de correção.

Ver Repositório
3há 3 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-95628 — camel-docling: validatePathSafety não rejeitava caminhos absolutos (correção incompleta da CVE-2026-40047)

Reprodutor de prova de conceito executável para a vulnerabilidade do Apache Camel em que a verificação de caminho de argumento personalizado introduzida pela correção da CVE-2026-40047 procurava apenas por travessia relativa. Ela rejeitava um valor contendo ../ e um valor cuja forma normalizada ainda continha um elemento .. — mas nunca verificava se um valor era um caminho absoluto, e um caminho absoluto sem segmentos de travessia não contém nenhum dos dois.

RuntimeDiretórioStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-docling 4.22.1
Camel Quarkuscamel-quarkus/Camel Quarkus 3.39.0 (Quarkus 3.39.0, Camel 4.22.0)

Executar

cd camel-spring-boot          # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
until [ "$(curl -s http://localhost:8080/exploit/ready)" = "Started" ]; do sleep 1; done
curl -s http://localhost:8080/exploit/attack
docker compose down

Saída em um build afetado (idêntica em ambos os runtimes):

1) A relative traversal value, which the CVE-2026-40047 fix does reject
     header CamelDoclingCustomArguments = [--artifacts-path, ../../../../etc]
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 contains a relative path traversal sequence

2) Traversal hidden behind redundant separators - also rejected (normalized first)
     header CamelDoclingCustomArguments = [--artifacts-path, models/./../../../../etc]
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 contains a relative path traversal sequence

3) An ABSOLUTE path, which contains no traversal sequence at all
     header CamelDoclingCustomArguments = [--artifacts-path, /etc]
     argv docling received: --artifacts-path /etc --to md --ocr-lang en --output /tmp/docling-... /tmp/docling-.../docling-....tmp

4) The same, attached to the flag after an equals sign
     header CamelDoclingCustomArguments = [--artifacts-path=/root/.ssh]
     argv docling received: --artifacts-path=/root/.ssh --to md --ocr-lang en --output /tmp/docling-... /tmp/docling-.../docling-....tmp

>>> PROVEN: ...

As sondas 1 e 2 mostram a correção do CVE-2026-40047 a fazer o seu trabalho. As sondas 3 e 4 são a lacuna: a flag está na lista de permissões dessa correção (--artifacts-path indica ao docling onde encontrar os seus artefactos de modelo), e o valor passa incólume em ambas as formas de argumento — um elemento de lista separado a seguir à flag, e anexado após um =. Uma parte capaz de escolher os argumentos personalizados poderia, portanto, apontar o processo docling para qualquer diretório a que o processo Camel tenha acesso, fora do diretório de trabalho onde a verificação deveria manter os valores de caminho, o que é exatamente o resultado que a correção anterior visava impedir.

Como está ligado

Não é necessária qualquer instalação do docling. A falha está na linha de comandos que o Camel constrói, pelo que a opção doclingCommand do endpoint aponta para um substituto de gravação da CLI que escreve o vetor de argumentos que lhe foi entregue num ficheiro. O DoclingProducer real, o validateCustomArguments() real e o validatePathSafety() real são executados; apenas a ferramenta externa é substituída.

Apenas o modo CLI, que é o predefinido, passa argumentos personalizados ao docling.

Alcance

CamelDoclingCustomArguments pertence ao namespace de cabeçalhos do Camel, que os consumidores que aplicam a filtragem de cabeçalhos predefinida do Camel — os consumidores JMS e Kafka, por exemplo — removem das mensagens recebidas. O problema é, portanto, alcançado onde uma rota encaminha valores influenciados externamente para o cabeçalho, ou onde um consumidor mapeia cabeçalhos recebidos sem essa filtragem.

Resumo da Vulnerabilidade

PropriedadeValor
Componentecamel-docling (DoclingProducer.validatePathSafety())
CWECWE-22 (Limitação Incorreta de um Nome de Caminho a um Diretório Restrito)
SeveridadeMédia
Vetor de ataqueUm caminho absoluto como valor de uma flag semelhante a caminho presente na lista de permissões em CamelDoclingCustomArguments
ImpactoApontar o processo docling para qualquer diretório a que o processo Camel tenha acesso
Versões AfetadasDa 4.15.0 anterior à 4.18.5, da 4.19.0 anterior à 4.22.2
Versões Corrigidas4.18.5, 4.22.2, 4.23.0
JIRACAMEL-24893
CréditoZhixi "Jace" Sun, investigador de segurança independente

Advisory: https://camel.apache.org/security/CVE-2026-95628.html

Relacionado: esta é uma correção incompleta do CVE-2026-40047, e o cabeçalho de caminho de saída do mesmo componente é o CVE-2026-95629.

A correção

validatePathSafety agora também rejeita um valor de argumento personalizado semelhante a caminho que seja um caminho absoluto, falhando a troca com uma IllegalArgumentException a indicar que o argumento não pode ser um caminho absoluto. Como a verificação reside no auxiliar partilhado que valida todos os valores semelhantes a caminho, ambas as formas de argumento estão cobertas.

Corrigido em main em apache/camel#26738 (fd3bc8e7), retroportado para camel-4.22.x em #26743 (e9233c37) e para camel-4.18.x em #26744 (59d30af1).

Verificar uma compilação corrigida

Defina camel.version para 4.22.2 e execute novamente. Verificado contra 4.22.1 → 4.22.2:

3) An ABSOLUTE path, which contains no traversal sequence at all
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 must not be an absolute path

4) The same, attached to the flag after an equals sign
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 0 must not be an absolute path

>>> NOT reproduced: the absolute path was rejected too.

Mitigação sem atualização

Não construa CamelDoclingCustomArguments a partir de valores que se originam fora da implantação; remova esse cabeçalho das mensagens que chegam do exterior antes que alcancem um endpoint docling; e certifique-se de que os consumidores que mapeiam cabeçalhos recebidos descartem o namespace de cabeçalhos do Camel, para que apenas a rota escolha os argumentos personalizados.

Aviso legal

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.

Baixar ferramenta