
Reproducer für CVE-2026-46592: Apache Camel camel-cxf operationName-Header-Injection, die die aufgerufene SOAP-Operation (Confused Deputy) von einer Lese- auf eine destruktive Operation umleitet (behoben in 4.14.8/4.18.3/4.21.0)
operationName Header-Injection (SOAP-Operationsumleitung)Ausführbare Proof-of-Concept-Reproducer für dieselbe Apache-Camel-Schwachstelle, einer pro Laufzeitumgebung:
| Laufzeitumgebung | Verzeichnis | Stack | Backend-SOAP-Dienst |
|---|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 | CXF ServerFactoryBean auf eigenem Port :9000 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (bündelt Camel 4.20.0) | quarkus-cxf auf dem verwalteten Server, /soapservice/account |
Beide sind betroffene Versionen (behoben in 4.14.8 / 4.18.3 / 4.21.0) und beide zeigen denselben Defekt:
CxfProducer#getBindingOperationInfo sucht zuerst nach einem operationName-Message-Header und greift nur dann auf das
defaultOperationName des Endpunkts zurück, wenn dieser fehlt. Der Wert dieser Header-Konstante ist der einfache String
operationName – nicht CamelCxfOperationName –, sodass der HTTP-Grenzfilter (der nur Camel* entfernt) einen
eingehenden HTTP-Header dieses Namens ungehindert durchlässt. Ein nicht vertrauenswürdiger Client fügt
operationName: deleteAccount hinzu, und das fest verdrahtete, schreibgeschützte getBalance der Route wird zu einem
destruktiven Aufruf (CWE-441, Confused Deputy).
Die beiden Varianten unterscheiden sich nur darin, wie der Backend-SOAP-Dienst aufgesetzt wird: Die Quarkus-Variante veröffentlicht ihn mit quarkus-cxf auf dem verwalteten Quarkus-HTTP-Server (sodass der Vertrag JAX-WS-
@WebService-Annotationen trägt), während die Spring-Boot-Variante ihn programmatisch mit einem CXF-ServerFactoryBeanauf einem separaten Port erstellt. Der Defekt bleibt davon unberührt.
Jedes Unterverzeichnis ist ein eigenständiges Projekt mit eigenem Dockerfile, eigener docker-compose.yml und eigenem README. Kurz
gesagt, für beide Varianten:
cd camel-spring-boot # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
Sicherheitshinweis: https://camel.apache.org/security/CVE-2026-46592.html
Diese Reproducer werden ausschließlich 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.
| Eigenschaft | Wert |
|---|
| Komponente | camel-cxf (camel-cxf-soap; die Konstante liegt in camel-cxf-common, daher ist auch camel-cxfrs betroffen) |
| Betroffene Klasse | org.apache.camel.component.cxf.jaxws.CxfProducer#getBindingOperationInfo liest CxfConstants.OPERATION_NAME ("operationName") |
| CWE | CWE-20 (Improper Input Validation) / CWE-441 (Unintended Proxy or Intermediary — Confused Deputy) |
| Auswirkung | Ein HTTP-Client setzt operationName → der Producer ruft eine andere SOAP-Operation auf (z. B. eine destruktive) |
| 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-23526 (PR apache/camel#23326) |
| Danksagung | Yu Bao (PayPal) |