
Reproductor per CVE-2026-46726: Apache Camel camel-vertx-websocket iniezione non filtrata di intestazioni in entrata che abilita SSRF e divulgazione di segreti tramite risoluzione di property-placeholder (corretto in 4.14.8/4.18.3/4.21.0)
Riproduttori proof-of-concept eseguibili per la stessa vulnerabilità di Apache Camel, uno per runtime:
| Runtime | Directory | Stack | feed WebSocket |
|---|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 | porta separata :8090 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (include Camel 4.20.0) | server HTTP Quarkus gestito :8080 |
Entrambe sono versioni affette (corrette in 4.14.8 / 4.18.3 / 4.21.0), e entrambe mostrano lo stesso difetto:
VertxWebsocketConsumer#populateExchangeHeaders copia i parametri della query della connessione WebSocket sull'Exchange
senza un HeaderFilterStrategy. Un client fornisce CamelHttpUri come parametro della query e reindirizza il
producer camel-http a valle dove preferisce (SSRF, CWE-918). Poiché il producer risolve anche i segnaposto delle
proprietà Camel su quell'URI controllato dall'attaccante, un {{app.secret}} iniettato viene espanso al suo valore
reale e inviato al collector dell'attaccante (esposizione di informazioni, CWE-200).
Le due varianti differiscono solo per dove viene servito il feed: l'estensione
camel-quarkus-vertx-websocketvincola sempre il consumer al server HTTP Quarkus gestito e rifiuta qualsiasi altro host/porta, quindi la variante Quarkus serve/feedsu:8080insieme ai suoi endpoint REST. Il difetto non è influenzato.
Ogni sottodirectory è un progetto autonomo con il proprio Dockerfile, docker-compose.yml e README. In breve, per entrambi:
cd camel-spring-boot # oppure: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
Avviso: https://camel.apache.org/security/CVE-2026-46726.html
Questi riproduttori sono forniti esclusivamente per ricerca sulla sicurezza e test autorizzati, per una vulnerabilità divulgata pubblicamente e corretta. Non usarli contro sistemi senza esplicita autorizzazione.
| Proprietà | Valore |
|---|
| Componente | camel-vertx-websocket |
| Classe Affetta | org.apache.camel.component.vertx.websocket.VertxWebsocketConsumer#populateExchangeHeaders (nessun HeaderFilterStrategy sui parametri di query/path in entrata) |
| CWE | CWE-20 → CWE-918 (SSRF) e CWE-200 (Esposizione di Informazioni) |
| Impatto | Inietta CamelHttpUri tramite un parametro della query WebSocket → SSRF da un producer HTTP a valle + divulgazione di segreti di env/property/vault tramite risoluzione dei segnaposto |
| Versioni Affette | Da 4.0.0 prima di 4.14.8, da 4.15.0 prima di 4.18.3, da 4.19.0 prima di 4.21.0 |
| Versioni Corrette | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23532 (PR apache/camel#23285) |
| Crediti | Kamalpreet Singh |