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-85312 — Lauffähiger Proof-of-Concept-Reproduzierer für CVE-2026-85312, der Saga-Hijacking in Apache Camel über den Long-Running-Action-Header in Spring Boot und Quarkus demonstriert. | Kitploit
Tools/GitHubGitHub/oscerd/cve-2026-85312
DefensivwerkzeugeSchwachstellenanalyseExploitationWebanwendungs-ExploitationLernen & Bildung
GitHuboscerd/cve-2026-85312

CVE-2026-85312

Lauffähiger Proof-of-Concept-Reproduzierer für CVE-2026-85312, der Saga-Hijacking in Apache Camel über den Long-Running-Action-Header in Spring Boot und Quarkus demonstriert.

Repository anzeigen
7vor 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-85312 — camel-core: Saga-Hijacking über den Long-Running-Action-Header

Lauffähiger Proof-of-Concept-Reproduzierer für die Apache-Camel-Schwachstelle, bei der der SagaProcessor von camel-core den Saga-Koordinator aus dem Long-Running-Action-Nachrichtenheader bei jedem Exchange auswählte. Dieser Headername trägt kein Camel-Präfix, sodass er außerhalb des Namespace liegt, den Consumer-Header-Filter entfernen — ein externer Absender konnte ihn auf einer eingehenden Nachricht mitliefern und dadurch die Saga benennen, der sich sein Exchange anschließt, wodurch seine Anfrage an eine von jemand anderem gestartete langlaufende Aktion angehängt wird (oder eine Kompensation mit einer Aktion verknüpft wird, die er nicht initiiert hat). Die Exposition ist auf Deployments beschränkt, die Sagas ausführen, aber wo sie zutrifft, steuert der Absender, zu welcher Saga ein Exchange gehört (CWE-20).

LaufzeitumgebungVerzeichnisStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-spring-boot 4.22.0 (betroffen; behoben in 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.39.0 + camel-quarkus-saga (Camel 4.22.0, betroffen; behobene Kontrolle CQ 3.40.0 / Camel 4.22.1)

Beide Module demonstrieren das betroffene und das behobene Verhalten gegenüber dem echten SagaProcessor von camel-core.

Was es demonstriert

Der Treiber bildet den eigenen Regressionstest des Fixes nach (SagaHeaderCannotSelectCoordinatorTest). Er baut eine Saga-Route from("direct:…").saga().propagation(MANDATORY) auf, gestützt auf einen In-Memory-Saga-Service, der jede ID aufzeichnet, deren Auflösung von ihm verlangt wird, und sendet dann einen Exchange mit dem eingehenden Header Long-Running-Action = a-saga-id-from-the-wire — die ID, die ein externer Absender auf die Leitung legen würde. Das Orakel ist schlicht welche Saga-IDs den Service erreichen:

  • Betroffen: Der Prozessor fällt auf den Header zurück, sodass die über die Leitung gelieferte ID a-saga-id-from-the-wire nachgeschlagen wird — die Nachricht wählte den Koordinator.
  • Behoben: Der Header wird nur für einen Saga-Service konsultiert, der Unterstützung dafür signalisiert (der In-Memory-Service tut dies nicht), sodass die über die Leitung gelieferte ID niemals nachgeschlagen wird.

In beiden Builds schlägt der MANDATORY-Exchange letztlich fehl (es gibt keine echte Saga, der man beitreten könnte) — die Schwachstelle ist nicht der Fehlschlag, sondern dass überhaupt eine vom Angreifer gewählte ID zur Auswahl des Koordinators verwendet wurde, weshalb das Orakel den Lookup beobachtet und nicht das Ergebnis.

# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: wire id looked up = true; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85312-saga-header-hijack-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wire id looked up = false; >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected (Camel 4.22.0): wire id looked up = true
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wire id looked up = false

Zusammenfassung der Schwachstelle

EigenschaftWert
Komponentecamel-core (SagaProcessor.getCurrentSagaCoordinator)
CWECWE-20 (Unzureichende Eingabevalidierung)
SchweregradMITTEL
AngriffsvektorEin externer Absender liefert den Header Long-Running-Action ohne Präfix in einer eingehenden Nachricht an eine Route, die die Saga-EIP ausführt
AuswirkungDer Absender bestimmt die Saga, der ein Exchange beitritt — er hängt sich an die langlaufende Aktion einer anderen Partei an oder ordnet die Kompensation falsch zu
Betroffene VersionenAb 4.0.0 vor 4.18.5, ab 4.19.0 vor 4.22.1
Behobene Versionen4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24449
DanksagungClaude Security Scan Tool

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

Das betroffene Quarkus-Modul basiert auf CQ 3.39.0 (Camel 4.22.0). Die korrigierte Kontrolle ist CQ 3.40.0 (Camel 4.22.1).

Die Korrektur

SagaProcessor konsultiert den Header Long-Running-Action jetzt nur noch dann, wenn der Saga-Dienst angibt, dass er an einem solchen Protokoll teilnimmt, und zwar über die neue Methode CamelSagaService.isLongRunningActionHeaderSupported() (Standard false; der LRA-Dienst überschreibt sie mit true). Der interne Exchange-Zustand — der removeHeaders("*") übersteht — bleibt der normale Träger der Saga-ID, sodass eine Nachricht nicht mehr den Koordinator für einen Dienst auswählen kann, der keinen externen Koordinator betreibt.

Gegenmaßnahme, falls Sie nicht aktualisieren können

Entfernen Sie den Header an der Vertrauensgrenze mit removeHeaders("Long-Running-Action") bei jedem Consumer, der Nachrichten von einem nicht vertrauenswürdigen Absender akzeptiert.

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. Die Demonstration führt eine Saga- Route prozessintern mit einem In-Memory-Saga-Dienst aus; die „Angreifer“-Saga-ID ist eine harmlose Platzhalterzeichenkette. Verwenden Sie dieses Material nicht gegen Systeme, die Ihnen nicht gehören oder die Sie nicht betreiben.

Tool herunterladen