
Reproducer für CVE-2026-46456 — Apache Camel camel-aws2-sqs Inbound-Message-Attribute-Header-Injection (Camel-Control-Header-Injection über sqs:SendMessage → Steuerung nachgelagerter Producer / RCE)
| Laufzeitumgebung | Verzeichnis | Stack | Gekaperte Senke | Demonstrierte Auswirkung |
|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 | exec: über CamelExecCommand* | Remote-Code-Ausführung |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (bündelt Camel 4.20.0) | http über CamelHttpUri | Server-Side Request Forgery |
Beide sind betroffene Versionen (behoben in 4.14.8 / 4.18.3 / 4.21.0), und beide demonstrieren denselben Defekt:
Sqs2HeaderFilterStrategy konfiguriert nur einen ausgehenden Filter, daher ordnet Sqs2Consumer jedes eingehende
SQS-Nachrichtenattribut dem Exchange zu — einschließlich Camel-Steuer-Headern. Der Routenautor hat nie eine Möglichkeit
bereitgestellt, das nachgelagerte Ziel zu ändern, aber ein Angreifer, der eine Nachricht in die Warteschlange einreihen kann,
injiziert eines und steuert den nachgelagerten Producer (CWE-20).
Die Spring-Boot-Variante beweist RCE über eine exec:-Senke. Diese Senke ist standardmäßig in Camel
4.20.0 (was Camel Quarkus 3.36.0 bündelt) nicht erreichbar: CAMEL-23315 fügte eine allowControlHeaders-Option zu
camel-exec hinzu, die standardmäßig auf false steht und erstmals in 4.20.0 ausgeliefert wurde. Diese Härtung ist
unabhängig von dieser CVE und behebt sie nicht — die injizierten Nachrichtenattribute werden bei 4.20.0 weiterhin zu
Exchange-Headern. Die Quarkus-Variante kapert daher den http-Producer über CamelHttpUri, der standardmäßig berücksichtigt
wird, was zu SSRF führt.
Jedes Unterverzeichnis ist ein eigenständiges Projekt (plus ein LocalStack-Container, der von seiner docker-compose.yml
gestartet wird) mit eigenem Dockerfile und eigener README. Kurz gesagt, für beide:
cd camel-spring-boot # oder: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
| Eigenschaft | Wert |
|---|---|
| Komponente | camel-aws2-sqs |
| Betroffene Klasse | org.apache.camel.component.aws2.sqs.Sqs2HeaderFilterStrategy (kein eingehender Filter) / Sqs2Consumer |
| CWE | CWE-20: Unzureichende Eingabevalidierung |
| Auswirkung | Ein Nachrichtenabsender injiziert Camel-Steuer-Header → steuert nachgelagerte Producer |
| Betroffene Versionen | Von 4.0.0 vor 4.14.8, von 4.15.0 vor 4.18.3, von 4.19.0 vor 4.21.0 |
| Behobene Versionen | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23506 |
Diese Reproduktoren werden nur für Sicherheitsforschung und autorisierte Tests bereitgestellt, für eine öffentlich offengelegte und behobene Schwachstelle. Verwenden Sie sie nicht gegen Systeme ohne ausdrückliche Genehmigung.