Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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-78164 — Lauffähiger Proof-of-Concept für CVE-2026-78164, der das Offenlegen von Geheimnissen demonstriert, wenn Apache Camel HTTP-Producer Property-Platzhalter in vom Angreifer bereitgestellten CamelHttpUri-Headern auflösen. | Kitploit
Tools/GitHubGitHub/oscerd/cve-2026-78164
DefensivwerkzeugeSchwachstellenanalyseExploitationWebanwendungs-ExploitationDatenexfiltrationInformationsbeschaffungLernen & Bildung
GitHuboscerd/cve-2026-78164

CVE-2026-78164

Lauffähiger Proof-of-Concept für CVE-2026-78164, der das Offenlegen von Geheimnissen demonstriert, wenn Apache Camel HTTP-Producer Property-Platzhalter in vom Angreifer bereitgestellten CamelHttpUri-Headern auflösen.

Repository anzeigen
1vor 2 TagenNoch 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

CVE-2026-78164 — Camel-HTTP-Producer lösen Property-Platzhalter in nachrichtenbereitgestellten URI-Headern auf

Lauffähiger Proof-of-Concept-Reproducer für die Apache-Camel-Schwachstelle, bei der die HTTP-Producer-Familien zulassen, dass eine eingehende Nachricht den Endpoint-URI über die Header CamelHttpUri und CamelRestHttpUri überschreibt, und diese nachrichtenbereitgestellte Zeichenkette anschließend durch CamelContext.resolvePropertyPlaceholders() leiteten, bevor sie verwendet wurde.

Die Auflösung von Property-Platzhaltern ist eine Konfigurationsauflösungsfunktion, kein URI-Parsing-Schritt. Sie greift auf Betriebssystem-Umgebungsvariablen, JVM-System-Properties, jede PropertiesFunction im Classpath (einschließlich der Secret-Funktionen von AWS, Azure, GCP, HashiCorp, IBM, CyberArk und Kubernetes) und — über camel-bean — auf den Aufruf einer parameterlosen Methode auf einem beliebigen Bean in der Registry zu. Wendet man dies auf angreiferbeeinflusste Exchange-Inhalte an, wird aus einer URI-Zeichenkette ein Konfigurations- und Bean-Auswertungskontext. Ein Routenautor hat sich zu nichts davon entschieden: ein einfaches statisches to("http://backend/api") genügte.

LaufzeitumgebungVerzeichnisStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-http 4.22.0 (betroffen; behoben in 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-http 3.29.0 (Camel 4.15.0, betroffen)

Das Verhalten ist älter als die 4.x-Reihe (es reicht bis camel-http4 / camel-netty4 zurück), daher ist jede betroffene Version und auch das Camel 4.15.0 im aktuellen Camel Quarkus verwundbar. Der Fix erscheint in Camel 4.18.5 / 4.22.1 / 4.23.0; das Spring-Boot-Modul führt sowohl den betroffenen Build (4.22.0) als auch den behobenen Build (4.22.1) aus. Kein veröffentlichtes Camel Quarkus bündelt bisher ein behobenes Camel.

Was es demonstriert

Die Route ist ein einfaches statisches to("http://127.0.0.1:9100/collect"), das auf einen lokalen Collector zeigt. Der Angreifer setzt den Header CamelHttpUri auf einen URI, der ein Property-Platzhalter-Token enthält — ohne den geheimen Wert zu kennen, er benennt nur den Schlüssel:

CamelHttpUri: http://127.0.0.1:9100/collect?leak={{sys:cve78164.secret}}

Die App setzt eine JVM-Systemeigenschaft cve78164.secret, die stellvertretend für einen beliebigen Konfigurationswert oder ein Vault-Secret steht. Beim betroffenen Build löst der Producer den Platzhalter auf, bevor die Anfrage hinausgeht, sodass der Collector das Secret in der ausgehenden Abfrage sieht. Beim behobenen Build wird das Token wörtlich weitergeleitet.

cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

Erwartete Ausgabe beim betroffenen Build:

Outbound request observed by the collector:
    GET /collect?leak=S3CR3T-cve78164-do-not-leak

>>> PROVEN: the {{sys:...}} placeholder in the attacker-supplied CamelHttpUri was resolved,
>>> expanding the secret 'S3CR3T-cve78164-do-not-leak' into the outbound request.

Beim korrigierten Build sieht der Collector stattdessen GET /collect?leak={{sys:cve78164.secret}} (literal, nicht aufgelöst).

Schwachstellenzusammenfassung

EigenschaftWert
Komponentecamel-http / camel-http-common / camel-vertx-http / camel-undertow / camel-netty-http
CWECWE-1336 (Improper Neutralization of Special Elements Used in a Template Engine), CWE-200 (Information Exposure)
SchweregradHOCH
AngriffsvektorCamelHttpUri / CamelRestHttpUri Override-Header, der ein {{...}}-Token trägt; Body/Header werden nicht durch bridgeEndpoint begrenzt, und mehrere Consumer befüllen CamelHttpUri aus der Request-Zeile als Reverse-Proxy-Funktion
AuswirkungExpansion von Umgebungsvariablen, System-Properties und Vault-Secrets in die ausgehende Anfrage; argumentlose Invocation von Registry-Beans; ein Set/Unset-Konfigurationsschlüssel-Orakel über den zurückgegebenen Fehler
Betroffene VersionenAb 4.0.0 vor 4.18.5, ab 4.19.0 vor 4.22.1 (Verhalten existiert vor 4.x)
Korrigierte Versionen4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24418
Credit[email protected]

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

Die Korrektur

Der Aufruf resolvePropertyPlaceholders() pro Nachricht wird an jeder betroffenen Stelle entfernt, sodass ein {{...}}-Token, das nur in CamelHttpUri oder CamelRestHttpUri erscheint, nun als literaler Teil der URI behandelt wird. Platzhalter in der eigenen Endpoint-URI der Route sind nicht betroffen — sie werden einmal zur Build-Zeit aufgelöst, wenn der Endpoint erstellt wird.

Mitigation, falls Sie nicht aktualisieren können

Entfernen Sie die Override-Header an der Vertrauensgrenze vor dem Producer mit removeHeader("CamelHttpUri") und removeHeader("CamelRestHttpUri"), oder setzen Sie skipControlHeaders=true auf camel-http-Endpoints (die einzige Komponente, die diese Option bietet). bridgeEndpoint=true ist kein Workaround. Wenden Sie eine strikte eingehende HeaderFilterStrategy auf Consumer an, die nicht vertrauenswürdigen Absendern ausgesetzt sind, und lösen Sie Secrets über einen Vault auf statt über Env-/System- Properties, die ein Platzhalter benennen kann.

Haftungsausschluss

Dieses Repository wird zu Bildungs- und Verteidigungszwecken veröffentlicht: um Apache-Camel-Nutzern zu helfen, die Schwachstelle zu verstehen, zu prüfen, ob sie betroffen sind, und zu bestätigen, dass ein Upgrade sie behebt. Das „Secret" ist ein inertes lokales Fixture. Verwenden Sie dieses Material nicht gegen Systeme, die Ihnen nicht gehören oder die Sie nicht betreiben.

Tool herunterladen