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-49086 — PoC-Reproducer für CVE-2026-49086, der eine Confused-Deputy-Überschreibung des Routing-Headers in Apache Camel camel-dapr demonstriert und über nicht vertrauenswürdige CloudEvent-Felder eine Nachrichtenweiterleitung sowie Datenextraktion ermöglicht. | Kitploit
Tools/GitHubGitHub/oscerd/cve-2026-49086
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungRed Teaming
GitHuboscerd/cve-2026-49086

CVE-2026-49086

PoC-Reproducer für CVE-2026-49086, der eine Confused-Deputy-Überschreibung des Routing-Headers in Apache Camel camel-dapr demonstriert und über nicht vertrauenswürdige CloudEvent-Felder eine Nachrichtenweiterleitung sowie Datenextraktion ermöglicht.

Repository anzeigen
12vor 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-dapr Consumer-Routing-Header-Override / Confused-Deputy-Reproducer (CVE-2026-49086)

Dieses Projekt demonstriert einen Routing-Header-Override- (Confused-Deputy-)Fehler in der camel-dapr-Komponente von Apache Camel, der als CVE-2026-49086 verfolgt wird.

Der Dapr-Pub/Sub-Consumer (DaprPubSubConsumer) kopiert Felder des eingehenden (nicht vertrauenswürdigen) CloudEvents in die Exchange-Nachrichtenheader. Zwei davon — pubsubName und topic — sind Routing-Header in Producer-Richtung (CamelDaprPubSubName / CamelDaprTopic). Wenn dieselbe Route später mit einem dapr:pubSub-Producer publiziert, bevorzugt DaprConfigurationOptionsProxy einen Header-Wert gegenüber dem konfigurierten Wert des Endpunkts. Die eingehende Envelope, die ein nicht vertrauenswürdiger Absender kontrolliert, überschreibt also stillschweigend das Ziel, an das die Route erneut publiziert:

// DaprPubSubConsumer.createServiceBusExchange (affected 4.18.2) — untrusted envelope -> routing headers
message.setHeader(DaprConstants.PUBSUB_NAME, cloudEvent.getPubsubName());   // CamelDaprPubSubName
message.setHeader(DaprConstants.TOPIC,       cloudEvent.getTopic());        // CamelDaprTopic

// DaprConfigurationOptionsProxy.getOption (affected 4.18.2) — header WINS over endpoint config
return ObjectHelper.isEmpty(exchange) || ObjectHelper.isEmpty(exchangeFn.apply(exchange))
        ? fallbackFn.get()            // endpoint config (e.g. audit-broker/audit-log)
        : exchangeFn.apply(exchange); // the header copied from the inbound CloudEvent

In einer Route, die von einem Topic konsumiert und an ein anderes erneut publiziert (ein übliches Audit-/Forward-/Fan-out-Muster), setzt ein Akteur, der auf das abonnierte Topic publizieren kann, das pubsubName/topic des CloudEvents und leitet die erneut publizierte Nachricht an eine beliebige Dapr-Pub/Sub-Komponente + Topic um — er exfiltriert die Nutzlast an einen für Angreifer erreichbaren Broker oder umgeht die vorgesehenen Routen/ACLs. Dies ist ein Confused-Deputy-Problem: Die App publiziert mit ihren eigenen Dapr-Anmeldeinformationen an ein vom Angreifer gewähltes Ziel.

Dieses PoC demonstriert die Auswirkung als Nachrichtenumleitung / Datencxfiltration (CWE-441, aus CWE-20).

Sicherheitshinweis: https://camel.apache.org/security/CVE-2026-49086.html

Schwachstellenübersicht

EigenschaftWert
Komponentecamel-dapr
Betroffene Klasseorg.apache.camel.component.dapr.consumer.DaprPubSubConsumer (setzt PUBSUB_NAME/TOPIC-Header aus dem eingehenden CloudEvent)
CWECWE-20 (Unzureichende Eingabevalidierung) / CWE-441 (Unbeabsichtigter Proxy / Confused Deputy)
AuswirkungUmleitung der erneut publizierten Nachricht an eine beliebige Dapr-Pub/Sub-Komponente + Topic (Exfiltration / Routing- & ACL-Bypass)
VoraussetzungenEine Route konsumiert von einem dapr:pubSub-Topic und publiziert über einen dapr:pubSub-Producer erneut; der Angreifer kann auf das abonnierte Topic publizieren
Betroffene Versionen4.12.0 bis 4.14.7, 4.15.0–4.18.2, 4.19.0–4.20.x
Behobene Versionen4.14.8, 4.18.3, 4.21.0
JIRACAMEL-23630 (PR apache/camel#23886)
DanksagungLeon Zlobecki

Der Fix verhindert, dass der Consumer die beiden Routing-Header setzt (CamelDaprPubSubName / CamelDaprTopic); die anderen CloudEvent-Metadaten-Header bleiben unverändert. Der Producer verwendet dann immer das endpoint-konfigurierte Pub/Sub + Topic. (Eine DaprHeaderFilterStrategy wurde ebenfalls für die Katalogkonsistenz hinzugefügt, aber die Routing-Header- Änderung ist der eigentliche Fix.)

Warum kein Dapr-Sidecar benötigt wird

Die Schwachstelle liegt vollständig in Camel — der Consumer kopiert CloudEvent.pubsubName/topic in Routing-Header, und der Producer bevorzugt diese Header. Der Dapr-Sidecar ist nur Transport. Dieser Reproducer injiziert Mock-Dapr-SDK-Clients (client=#mockClient, previewClient=#mockPreview), sodass der echte DaprPubSubConsumer und DaprPubSubHandler unverändert ohne Sidecar laufen: Der Mock-Preview-Client erfasst den Subscription-Listener, und der Mock-Client zeichnet das Publish-Ziel auf. Der Angreifer-Treiber liefert dann ein gefälschtes CloudEvent an den erfassten Listener — genau das, was ein Absender auslöst, der auf das abonnierte Topic publizieren kann.

Die Opfer-Route

from("dapr:pubSub?pubSubName=orders-broker&topic=orders&previewClient=#mockPreview&client=#mockClient")
    .to("dapr:pubSub?pubSubName=audit-broker&topic=audit-log&client=#mockClient&previewClient=#mockPreview");

Der Autor beabsichtigt, dass jede Bestellung auf das feste audit-broker/audit-log gespiegelt wird. Aber weil der Consumer das pubsubName/topic der eingehenden Envelope in die Routing-Header kopiert, publiziert der Audit-Producer an das, was die Envelope benennt — nie an den konfigurierten Audit-Stream.

Repository-Aufbau

Alles läuft in einem einzigen eigenständigen Container.

CVE-2026-49086/
├── pom.xml                 # camel-dapr 4.18.2 (dapr-sdk 1.16.1 transitive) + spring-boot-web
├── Dockerfile
├── docker-compose.yml      # single self-contained service
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── DaprMockConfig.java       # mock DaprClient + DaprPreviewClient (dynamic proxies; no sidecar)
    │   ├── PublishRecorder.java      # records where the producer actually published
    │   ├── SubscriptionRegistry.java # captures the consumer's subscription listener
    │   ├── VictimRoutes.java         # dapr:pubSub subscribe -> dapr:pubSub publish (audit)
    │   └── ExploitController.java    # attacker: deliver forged CloudEvents; compare publish target
    └── resources/
        └── application.properties

Voraussetzungen

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

Reproduktionsschritte

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

Erwartete Ausgabe

=== CVE-2026-49086 — camel-dapr consumer routing-header override (confused deputy) ===

Route intent: mirror every order to a FIXED audit stream
    .to("dapr:pubSub?pubSubName=audit-broker&topic=audit-log")

1) Ordinary order event (envelope pubsub=orders-broker topic=orders)
     audit copy actually published to: orders-broker / orders
     -> already NOT the configured audit-broker/audit-log: the envelope's routing fields leaked into the producer.

2) Malicious order event (envelope forged: pubsub=attacker-broker topic=exfil-secrets)
     audit copy actually published to: attacker-broker / exfil-secrets
     leaked order data: {"orderId":"A-1002","card":"4111-2222-3333-4444"}

>>> PROVEN: the inbound CloudEvent's pubsubName/topic overrode the route's hard-coded
>>> audit target, so an attacker who can publish to 'orders' redirects the order copy to
>>> an arbitrary pub/sub component + topic (data exfiltration / routing bypass): true

Empfohlener Fix

Führen Sie ein Upgrade auf 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23630) durch. Nach dem Fix setzt der Consumer CamelDaprPubSubName / CamelDaprTopic nicht mehr, sodass ein dapr:pubSub-Producer nach einem dapr:pubSub-Consumer seine endpoint-konfigurierte Pub/Sub-Komponente und sein Topic verwendet.

Gegenmaßnahmen

Bis zum Upgrade sollten Sie die Routing-Header zwischen dem Consumer und jedem dapr:pubSub-Producer in der Route entfernen (z. B. removeHeaders("CamelDaprPubSubName,CamelDaprTopic")) und das erneute Pub/Sub + Topic aus einer vertrauenswürdigen Quelle setzen.

Haftungsausschluss

Tool herunterladen