
Riproduttore per CVE-2026-46457 — iniezione degli header in ingresso nel componente camel-nats di Apache Camel (iniezione dell'header di controllo Camel tramite un publisher NATS; CamelHttpUri -> SSRF)
Proof-of-concept eseguibili per riprodurre la stessa vulnerabilità Apache Camel, uno per runtime:
| Runtime | Directory | Stack |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (include Camel 4.20.0) |
Entrambe sono versioni interessate (corrette in 4.14.8 / 4.18.3 / 4.21.0) e dimostrano entrambe il medesimo difetto:
NatsConfiguration imposta headerFilterStrategy di default a un semplice new DefaultHeaderFilterStrategy() senza
regole in ingresso, quindi NatsConsumer copia ogni header dei messaggi NATS in ingresso sull'Exchange — incluso
CamelHttpUri. Il producer camel-http tratta quell'header come URI della richiesta, quindi chiunque possa pubblicare sul
subject consumato può reindirizzare la richiesta in uscita verso un target a propria scelta (SSRF, CWE-20). La stessa tecnica
raggiunge qualsiasi producer controllato da header (CamelFileName, CamelSqlQuery, ...).
Ogni sottodirectory è un progetto autonomo (più un broker NATS avviato dal suo docker-compose.yml) con il proprio
Dockerfile e README. In breve, per entrambi:
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
Avviso: https://camel.apache.org/security/CVE-2026-46457.html
Questi reproducer sono forniti solo per ricerca sulla sicurezza e test autorizzati, per una vulnerabilità divulgata pubblicamente e corretta. Non utilizzarli contro sistemi senza autorizzazione esplicita.
| Proprietà | Valore |
|---|
| Componente | camel-nats |
| Classe interessata | org.apache.camel.component.nats.NatsConfiguration (predefinito DefaultHeaderFilterStrategy) / NatsConsumer |
| CWE | CWE-20: Validazione impropria dell'input |
| Impatto | Un publisher del subject inietta header di controllo Camel → indirizza i producer a valle (SSRF mostrato qui) |
| Versioni interessate | Da 4.0.0 a prima di 4.14.8, da 4.15.0 a prima di 4.18.3, da 4.19.0 a prima di 4.21.0 |
| Versioni corrette | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23515 |