Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-56139 — Reproductor de PoC para CVE-2026-56139 (Apache Camel camel-undertow Rest DSL): el binding de Rest DSL codifica de forma fija muteException=false, por lo que un muteException=true configurado se ignora y la traza de pila completa de una excepción no capturada se devuelve al cliente (CWE-209). Corregido en 4.14.8/4.18.3/4.21.0. | Kitploit
Herramientas/GitHubGitHub/oscerd/cve-2026-56139
Análisis de VulnerabilidadesExplotaciónRecopilación de InformaciónSeguridad WebPruebas de PenetraciónAprendizaje y Educación
GitHuboscerd/cve-2026-56139

CVE-2026-56139

Ver Repositorio
10hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

Reproductor de PoC para CVE-2026-56139 (Apache Camel camel-undertow Rest DSL): el binding de Rest DSL codifica de forma fija muteException=false, por lo que un muteException=true configurado se ignora y la traza de pila completa de una excepción no capturada se devuelve al cliente (CWE-209). Corregido en 4.14.8/4.18.3/4.21.0.

Compartir

Reproducción de la divulgación de stack trace por muteException en camel-undertow Rest DSL (CVE-2026-56139)

Este proyecto demuestra un problema de divulgación de información en el consumidor Rest DSL de camel-undertow de Apache Camel, registrado como CVE-2026-56139. La opción muteException controla si el detalle de una excepción de procesamiento no capturada se devuelve al cliente HTTP. En un endpoint undertow normal la opción funciona, pero el Rest DSL de undertow crea su enlace de respuesta con muteException codificado a false y nunca copia el valor configurado, por lo que muteException se ignora silenciosamente en modo REST y la traza de pila Java completa se devuelve de todos modos:

// 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
}

Dado que el undertowHttpBinding del endpoint ahora no es nulo, UndertowEndpoint.getUndertowHttpBinding() devuelve ese enlace REST tal cual y nunca ejecuta la rama que copia el muteException del endpoint sobre él. Por lo tanto, una ruta que establece explícitamente muteException=true sigue filtrando trazas de pila cuando se sirve a través del Rest DSL — divulgando nombres de host internos del backend, URLs de bases de datos, pistas de credenciales/cofres, versiones de librerías y ubicaciones de código fuente.

Este PoC demuestra el impacto como exposición de información a través de un mensaje de error (CWE-209). Es la contraparte específica para Rest DSL de CVE-2026-49365 (que corrigió el valor predeterminado de muteException para los endpoints camel-netty-http y camel-undertow normales); ambos se corrigieron juntos en CAMEL-23651.

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

Resumen de la vulnerabilidad

PropiedadValor
Componentecamel-undertow (consumidor Rest DSL)
Clase afectadaorg.apache.camel.component.undertow.UndertowComponent — crea RestUndertowHttpBinding sin copiar muteException (que por lo tanto tiene false por defecto)
CWECWE-209 (Generación de mensajes de error que contienen información sensible)
ImpactoTraza de pila Java completa devuelta a un cliente no autenticado incluso cuando está configurado muteException=true
PrecondicionesUn consumidor Rest DSL de undertow; cualquier solicitud que provoque una excepción de procesamiento
Versiones afectadasDesde 4.0.0 antes de 4.14.8, desde 4.15.0 antes de 4.18.3, desde 4.19.0 antes de 4.21.0
Versiones corregidas4.14.8, 4.18.3, 4.21.0
JIRACAMEL-23651 (PR apache/camel#23913)
CréditoYu Bao (PayPal)

La corrección hace que la ruta Rest DSL copie endpoint.getMuteException() en RestUndertowHttpBinding, de modo que el Rest DSL respeta la configuración (y el valor predeterminado corregido de true).

Las rutas afectadas

// 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());

Estructura del repositorio

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

Requisitos previos

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

Pasos de reproducción

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

Salida esperada (abreviada)

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

Corrección recomendada

Actualice a 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23651). Tras actualizar, el Rest DSL de undertow respeta muteException (y lo establece por defecto en true), por lo que la traza de pila no se devuelve.

Mitigación

Mientras tanto, añada un onException(...).handled(true) (o un manejador de errores global) que devuelva un mensaje genérico en lugar de la traza de pila, y no confíe únicamente en muteException para los consumidores Rest DSL de undertow.

Descargo de responsabilidad

Este reproductor se proporciona únicamente para investigación de seguridad y pruebas autorizadas, para una vulnerabilidad divulgada públicamente y corregida. No lo utilice contra sistemas sin permiso explícito.

Descargar herramienta