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-83531 — Prova de conceito executável em Spring Boot para a CVE-2026-83531, demonstrando injeção de expression language no endpoint dynamic-router-control do Apache Camel e verificando a correção. | Kitploit
Ferramentas/GitHubGitHub/oscerd/cve-2026-83531
Ferramentas DefensivasAnálise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebAprendizado e Educação
GitHuboscerd/cve-2026-83531

CVE-2026-83531

Prova de conceito executável em Spring Boot para a CVE-2026-83531, demonstrando injeção de expression language no endpoint dynamic-router-control do Apache Camel e verificando a correção.

Ver Repositório
3há 1 diaAinda 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-83531 — camel-dynamic-router: injeção de expression-language no endpoint de controle

Reprodutor de prova de conceito executável para a vulnerabilidade do Apache Camel em que o endpoint dynamic-router-control obtinha o predicado de assinatura e o nome da linguagem usada para compilá-lo a partir da mensagem recebida (os campos predicate / expressionLanguage de uma DynamicRouterControlMessage, ou os cabeçalhos CamelDynamicRouterPredicate / CamelDynamicRouterExpressionLanguage). O serviço então resolvia essa linguagem a partir do CamelContext e compilava a expressão em um Predicate, sem allow-list e sem opt-in. O predicado compilado era avaliado contra cada exchange roteado pelo canal — portanto, qualquer ator capaz de enviar uma mensagem para um transporte cuja rota a encaminhe para um endpoint de controle poderia fornecer uma expressão de sua escolha, avaliada com os privilégios do processo Camel. Qualquer linguagem no classpath poderia ser selecionada, incluindo simple, que está sempre presente e era o padrão.

Apenas Camel Spring Boot. Não existe a extensão camel-quarkus-dynamic-router, portanto este reprodutor não pode ser executado no Camel Quarkus.

RuntimeDiretórioStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-dynamic-router 4.22.0 (afetado; corrigido em 4.22.1)

O que ele demonstra

A aplicação configura um canal Dynamic Router test (direct:start → dynamic-router://test). O atacante envia uma mensagem de controle subscribe carregando uma expressão de predicado e uma linguagem escolhidas pelo atacante:

CamelDynamicRouterPredicate          = ${bean:detonator?method=detonate}
CamelDynamicRouterExpressionLanguage = simple

Em seguida, uma mensagem é encaminhada pelo canal, que avalia o predicado de assinatura. Na build afetada, a expressão é executada, invocando detonator.detonate() — um substituto benigno para qualquer método de registro sem argumentos que um atacante poderia alcançar (e qualquer linguagem, por exemplo Groovy, permite código arbitrário). Na build corrigida, o endpoint de controle recusa-se a aceitar o predicado/linguagem a partir da mensagem.

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:

Subscription accepted.
>>> PROVEN: the attacker-supplied predicate expression was compiled and evaluated, invoking
>>> detonator.detonate() with the privileges of the Camel process ...

Na build corrigida, a subscrição é rejeitada com IllegalArgumentException: The subscription predicate expression, and the language used to compile it, cannot be taken from a control message. ... set 'allowPredicateFromMessage=true' ....

Resumo da Vulnerabilidade

PropriedadeValor
Componentecamel-dynamic-router (endpoint dynamic-router-control)
CWECWE-94 (Injeção de Código), CWE-917 (Injeção de Expression Language)
SeveridadeALTA
Vetor de ataqueUma mensagem de controlo (subscribe/update) que fornece uma expressão de predicado e a linguagem, num transporte cuja rota a encaminha para um endpoint dynamic-router-control
ImpactoAvaliação de uma expressão escolhida pelo atacante (qualquer linguagem do classpath) com os privilégios do processo Camel — execução de código
Versões AfetadasDa 4.4.0 anterior à 4.18.5, da 4.19.0 anterior à 4.22.1
Versões Corrigidas4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24576
CréditoLeon Zlobecki

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

A correção

A expressão de predicado e a sua linguagem deixam de ser obtidas a partir da mensagem de controlo por predefinição: uma mensagem de controlo que as forneça é rejeitada, a menos que o autor da rota opte explicitamente por isso com allowPredicateFromMessage=true no endpoint dynamic-router-control. O caminho pretendido é configurar predicate e expressionLanguage no URI do endpoint (controlado pelo autor da rota), como faziam as versões anteriores à 4.4.0.

Mitigação se não puder atualizar

Não encaminhe mensagens de origem externa para um endpoint dynamic-router-control; faça a gestão das subscrições apenas a partir de endpoints controlados pelo autor da rota e restrinja os transportes que conseguem alcançar o canal de controlo.

Aviso Legal

Este repositório é publicado para fins educativos e defensivos: para ajudar os utilizadores do Apache Camel a compreender a vulnerabilidade, verificar se são afetados e confirmar que a atualização a resolve. O payload é um bean marcador benigno. Não utilize este material contra sistemas que não possui ou opera.

Baixar ferramenta