
Reproducer PoC per CVE-2026-49098 (Apache Camel camel-kafka): l'header kafka.OVERRIDE_TOPIC senza prefisso Camel aggira il filtro degli header HTTP a monte e sovrascrive il topic configurato dal producer, iniettando un record forgiato dall'attaccante su un topic Kafka privilegiato (iniezione cross-topic). Corretto in 4.14.8/4.18.3/4.21.0.
kafka.OVERRIDE_TOPICRiproduttori proof-of-concept eseguibili per 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 (il problema è stato corretto in 4.14.8 / 4.18.3 / 4.21.0) ed entrambe dimostrano lo stesso identico difetto:
KafkaProducer.evaluateTopic() legge l'intestazione kafka.OVERRIDE_TOPIC senza prefisso Camel e la preferisce rispetto al topic configurato nell'endpoint. Elude il filtro delle intestazioni HTTP (sia la platform-http servlet di Spring Boot che la platform-http Vert.x di Quarkus) e sposta un record prodotto su un topic scelto dall'attaccante — iniezione cross-topic (CWE-20 → CWE-74).
Ogni sottodirectory è un progetto autonomo con il proprio Dockerfile, docker-compose.yml e README con tutti i dettagli e i passaggi di riproduzione. 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-49098.html
Questi riproduttori sono forniti esclusivamente per ricerca sulla sicurezza e test autorizzati, per una vulnerabilità divulgata pubblicamente e corretta. Non utilizzarli contro sistemi senza esplicita autorizzazione.
| Proprietà | Valore |
|---|
| Componente | camel-kafka (Spring Boot: camel-kafka-starter; Quarkus: camel-quarkus-kafka) |
| CWE | CWE-20 (Validazione impropria dell'input) / CWE-74 (Iniezione) |
| Impatto | Reindirizzare / iniettare un record prodotto su un topic Kafka arbitrario |
| Versioni interessate | Dalla 4.0.0 alla 4.14.8 (esclusa), dalla 4.15.0 alla 4.18.3 (esclusa), dalla 4.19.0 alla 4.21.0 (esclusa) |
| Versioni corrette | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23584 (PR apache/camel#23602) |
| Crediti | Yu Bao (PayPal) |