Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-56139 — Reprodutor de PoC para CVE-2026-56139 (Apache Camel camel-undertow Rest DSL): o Rest DSL codifica muteException=false, então um muteException=true configurado é ignorado e o stack trace completo de uma exceção não capturada é retornado ao cliente (CWE-209). Corrigido em 4.14.8/4.18.3/4.21.0. | Kitploit
Ferramentas/GitHubGitHub/oscerd/cve-2026-56139
Análise de VulnerabilidadesExploraçãoColeta de InformaçõesSegurança WebTestes de PenetraçãoAprendizado e Educação
GitHuboscerd/cve-2026-56139

CVE-2026-56139

Ver Repositório
há 1 mêsAinda 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 →

Sobre

Reprodutor de PoC para CVE-2026-56139 (Apache Camel camel-undertow Rest DSL): o Rest DSL codifica muteException=false, então um muteException=true configurado é ignorado e o stack trace completo de uma exceção não capturada é retornado ao cliente (CWE-209). Corrigido em 4.14.8/4.18.3/4.21.0.

Compartilhar

camel-undertow Rest DSL Reproducer de Divulgação de Stack-Trace do muteException (CVE-2026-56139)

Este projeto demonstra um problema de divulgação de informações no consumidor Rest DSL do camel-undertow do Apache Camel, registrado como CVE-2026-56139. A opção muteException controla se o detalhe de uma exceção de processamento não capturada é retornado ao cliente HTTP. Em um endpoint undertow simples a opção funciona — mas o Rest DSL do undertow cria seu binding de resposta com muteException codificado como false e nunca copia o valor configurado, então muteException é silenciosamente ignorado no modo REST e o stack trace completo do Java é retornado de qualquer forma:

root@kitploit:~
// UndertowComponent (affected 4.18.2) — the Rest DSL binding is created without the endpoint's muteException
if (!map.containsKey("undertowHttpBinding")) {
    endpoint.setUndertowHttpBinding(new RestUndertowHttpBinding(endpoint.isUseStreaming()));  // muteException stays false
}

Como o undertowHttpBinding do endpoint agora é não-nulo, UndertowEndpoint.getUndertowHttpBinding() retorna esse binding Rest como está e nunca executa o branch que copia o muteException do endpoint para ele. Portanto, uma rota que define explicitamente muteException=true ainda vaza stack traces quando servida através do Rest DSL — divulgando nomes de host internos do backend, URLs de banco de dados, dicas de credenciais/cofres, versões de bibliotecas e localizações de código-fonte.

Este PoC demonstra o impacto como exposição de informações através de uma mensagem de erro (CWE-209). É a contraparte específica do Rest-DSL do CVE-2026-49365 (que corrigiu o padrão muteException para endpoints simples camel-netty-http e camel-undertow); ambos foram corrigidos juntos sob CAMEL-23651.

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

Resumo da Vulnerabilidade

PropriedadeValor
Componentecamel-undertow (consumidor Rest DSL)
Classe Afetadaorg.apache.camel.component.undertow.UndertowComponent — cria RestUndertowHttpBinding sem copiar muteException (que, portanto, assume o padrão false)
CWECWE-209 (Geração de Mensagem de Erro Contendo Informações Sensíveis)
ImpactoStack trace completo do Java retornado a um cliente não autenticado mesmo quando muteException=true está configurado
Pré-condiçõesUm consumidor undertow Rest DSL; qualquer requisição que dispare uma exceção de processamento
Versões AfetadasDe 4.0.0 anteriores a 4.14.8, de 4.15.0 anteriores a 4.18.3, de 4.19.0 anteriores a 4.21.0
Versões Corrigidas4.14.8, 4.18.3, 4.21.0
JIRACAMEL-23651 (PR apache/camel#23913)
CréditoYu Bao (PayPal)

A correção faz com que o caminho do Rest DSL copie endpoint.getMuteException() para o RestUndertowHttpBinding, de modo que o Rest DSL respeita a configuração (e o padrão corrigido de true).

As rotas vítimas

root@kitploit:~
// Both configured with muteException=true (camel.component.undertow.mute-exception=true):
restConfiguration().component("undertow").host("0.0.0.0").port(8888);
rest("/api").get("/orders").to("direct:boom");            // Rest DSL — IGNORES muteException, leaks
from("direct:boom").process(new FailingProcessor());

from("undertow:http://0.0.0.0:8889/plain/orders")         // plain endpoint — HONOURS muteException, empty body
    .process(new FailingProcessor());

Layout do repositório

root@kitploit:~
CVE-2026-56139/
├── pom.xml                 # camel-undertow 4.18.2
├── Dockerfile
├── docker-compose.yml      # single self-contained service
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── FailingProcessor.java   # throws an exception carrying sensitive internal detail
    │   ├── RestRoutes.java         # undertow Rest DSL (:8888) + plain undertow endpoint (:8889)
    │   └── ExploitController.java  # attacker: GETs both, shows Rest DSL leaks while plain is muted
    └── resources/
        └── application.properties  # camel.component.undertow.mute-exception=true

Pré-requisitos

  • Docker e Docker Compose
  • Java 17+ e Maven 3.8+

Passos para Reprodução

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

Saída esperada (abreviada)

root@kitploit:~
1) undertow Rest DSL :8888  (muteException=true, but the Rest binding hard-codes false)
     HTTP 500
     response body (NNNN bytes) — LEAKS internal detail:
       | java.lang.IllegalStateException: Inventory lookup failed: cannot connect to
       |   jdbc:postgresql://prod-db.internal:5432/inventory (user=svc_inventory, ...)
       | 	at com.example.FailingProcessor.process(FailingProcessor.java:...)
       | 	...[truncated]

2) plain undertow endpoint :8889  (same muteException=true — honoured)
     HTTP 500
     response body: <empty>

>>> Information disclosure: true

Correção Recomendada

Atualize para 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23651). Após a atualização, o undertow Rest DSL respeita muteException (e o define como true por padrão), portanto o stack trace não é retornado.

Mitigação

Até a atualização, adicione um onException(...).handled(true) (ou um manipulador de erro global) que retorne uma mensagem genérica em vez do stack trace, e não confie apenas em muteException para consumidores undertow Rest DSL.

Aviso de Responsabilidade

Este reprodutor é fornecido apenas para pesquisa de segurança e testes autorizados, para uma vulnerabilidade divulgada publicamente e corrigida. Não o utilize contra sistemas sem permissão explícita.

Baixar ferramenta