Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-56139 — Reproducteur de PoC pour CVE-2026-56139 (Apache Camel camel-undertow Rest DSL) : la liaison Rest DSL code en dur muteException=false, donc un muteException=true configuré est ignoré et la trace de pile complète d'une exception non capturée est renvoyée au client (CWE-209). Corrigé en 4.14.8/4.18.3/4.21.0. | Kitploit
Outils/GitHubGitHub/oscerd/cve-2026-56139
Analyse des VulnérabilitésExploitationCollecte d'InformationsSécurité WebTests d'IntrusionApprentissage et Éducation
GitHuboscerd/cve-2026-56139

CVE-2026-56139

Voir le dépôt
il y a 29 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

Reproducteur de PoC pour CVE-2026-56139 (Apache Camel camel-undertow Rest DSL) : la liaison Rest DSL code en dur muteException=false, donc un muteException=true configuré est ignoré et la trace de pile complète d'une exception non capturée est renvoyée au client (CWE-209). Corrigé en 4.14.8/4.18.3/4.21.0.

Partager

Reproducer de la divulgation de trace de pile muteException du Rest DSL camel-undertow (CVE-2026-56139)

Ce projet illustre un problème de divulgation d'informations dans le consommateur Rest DSL camel-undertow d'Apache Camel, référencé sous le nom CVE-2026-56139. L'option muteException détermine si le détail d'une exception de traitement non interceptée est renvoyé au client HTTP. Sur un endpoint undertow classique, l'option fonctionne — mais le Rest DSL undertow crée sa liaison de réponse avec muteException codée en dur à false et ne copie jamais la valeur configurée ; muteException est donc silencieusement ignoré en mode REST et la trace de pile Java complète est renvoyée malgré tout :

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
}

Comme le undertowHttpBinding de l'endpoint est désormais non nul, UndertowEndpoint.getUndertowHttpBinding() renvoie cette liaison Rest telle quelle et n'exécute jamais la branche qui copie le muteException de l'endpoint sur celle-ci. Ainsi, une route qui définit explicitement muteException=true continue de divulguer les traces de pile lorsqu'elle est servie via le Rest DSL — exposant les noms d'hôtes internes du backend, les URL de bases de données, les indices d'identifiants/coffres de secrets, les versions de bibliothèques et les emplacements du code source.

Cette PoC illustre l'impact comme une exposition d'informations via un message d'erreur (CWE-209). Il s'agit de l'équivalent spécifique au Rest DSL de la CVE-2026-49365 (qui a corrigé la valeur par défaut de muteException pour les endpoints camel-netty-http et camel-undertow classiques) ; les deux ont été corrigées ensemble dans le cadre de CAMEL-23651.

Avis de sécurité : https://camel.apache.org/security/CVE-2026-56139.html

Résumé de la vulnérabilité

Le correctif fait en sorte que le chemin Rest DSL copie endpoint.getMuteException() dans le RestUndertowHttpBinding, afin que le Rest DSL respecte le réglage (ainsi que la valeur par défaut corrigée de true).

Les routes victimes

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

Structure du dépôt

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érequis

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

Étapes de reproduction

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

Sortie attendue (abrégée)

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

Correctif recommandé

Mettez à niveau vers 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23651). Après la mise à niveau, le Rest DSL undertow respecte muteException (et le définit par défaut à true), de sorte que la trace de pile n'est plus renvoyée.

Atténuation

En attendant la mise à niveau, ajoutez un onException(...).handled(true) (ou un gestionnaire d'erreurs global) qui renvoie un message générique au lieu de la trace de pile, et ne vous fiez pas uniquement à muteException pour les consommateurs Rest DSL undertow.

Avertissement

Ce reproducteur est fourni uniquement pour la recherche en sécurité et les tests autorisés, pour une vulnérabilité publiquement divulguée et corrigée. Ne l'utilisez pas contre des systèmes sans autorisation explicite.

Télécharger l’outil
PropriétéValeur
Composantcamel-undertow (consommateur Rest DSL)
Classe concernéeorg.apache.camel.component.undertow.UndertowComponent — crée RestUndertowHttpBinding sans copier muteException (qui prend donc la valeur par défaut false)
CWECWE-209 (génération d'un message d'erreur contenant des informations sensibles)
ImpactTrace de pile Java complète renvoyée à un client non authentifié, même lorsque muteException=true est configuré
Conditions préalablesUn consommateur Rest DSL undertow ; toute requête déclenchant une exception de traitement
Versions concernéesDe 4.0.0 jusqu'à avant 4.14.8, de 4.15.0 jusqu'à avant 4.18.3, de 4.19.0 jusqu'à avant 4.21.0
Versions corrigées4.14.8, 4.18.3, 4.21.0
JIRACAMEL-23651 (PR apache/camel#23913)
CréditYu Bao (PayPal)