
Reproductor para CVE-2026-46726: inyección de cabeceras entrantes sin filtrar en Apache Camel camel-vertx-websocket que permite SSRF y divulgación de secretos mediante la resolución de property-placeholder (corregido en 4.14.8/4.18.3/4.21.0)
Reproductores de prueba de concepto ejecutables para la misma vulnerabilidad de Apache Camel, uno por runtime:
| Runtime | Directorio | Stack | Feed WebSocket |
|---|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 | puerto separado :8090 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (incluye Camel 4.20.0) | servidor HTTP Quarkus gestionado :8080 |
Ambas son versiones afectadas (corregidas en 4.14.8 / 4.18.3 / 4.21.0) y demuestran el mismo defecto:
VertxWebsocketConsumer#populateExchangeHeaders copia los parámetros de consulta de la conexión WebSocket al
Exchange sin HeaderFilterStrategy. Un cliente proporciona CamelHttpUri como parámetro de consulta y
dirige el productor camel-http posterior adonde quiera (SSRF, CWE-918). Debido a que el productor también
resuelve los placeholders de propiedades de Camel en esa URI controlada por el atacante, un {{app.secret}}
inyectado se expande a su valor real y se envía al recolector del atacante (exposición de información, CWE-200).
Las dos variantes difieren solo en dónde se sirve el feed: la extensión
camel-quarkus-vertx-websocketsiempre vincula el consumidor al servidor HTTP de Quarkus gestionado y rechaza cualquier otro host/puerto, por lo que la variante Quarkus sirve/feeden:8080junto a sus endpoints REST. El defecto no se ve afectado.
Cada subdirectorio es un proyecto autocontenido con su propio Dockerfile, docker-compose.yml y README. En
resumen, para cualquiera de los dos:
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
Aviso: https://camel.apache.org/security/CVE-2026-46726.html
Estos reproductores se proporcionan solo para investigación de seguridad y pruebas autorizadas, para una vulnerabilidad divulgada públicamente y corregida. No los utilices contra sistemas sin permiso explícito.
| Propiedad | Valor |
|---|
| Componente | camel-vertx-websocket |
| Clase Afectada | org.apache.camel.component.vertx.websocket.VertxWebsocketConsumer#populateExchangeHeaders (sin HeaderFilterStrategy en los parámetros de consulta/ruta entrantes) |
| CWE | CWE-20 → CWE-918 (SSRF) y CWE-200 (Exposición de Información) |
| Impacto | Inyección de CamelHttpUri a través de un parámetro de consulta WebSocket → SSRF desde un productor HTTP posterior + divulgación de secretos de entorno/propiedades/vault mediante la resolución de placeholders |
| Versiones Afectadas | Desde 4.0.0 antes de 4.14.8, desde 4.15.0 antes de 4.18.3, desde 4.19.0 antes de 4.21.0 |
| Versiones Corregidas | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23532 (PR apache/camel#23285) |
| Crédito | Kamalpreet Singh |