
Reproducteur pour CVE-2026-46457 — injection d'en-têtes entrants camel-nats dans Apache Camel (injection d'en-têtes de contrôle Camel via un éditeur NATS ; CamelHttpUri -> SSRF)
| Runtime | Répertoire | 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 (inclut Camel 4.20.0) |
Les deux sont des versions affectées (corrigées en 4.14.8 / 4.18.3 / 4.21.0), et les deux démontrent le même défaut :
NatsConfiguration définit par défaut headerFilterStrategy sur un simple new DefaultHeaderFilterStrategy() sans
règles entrantes, de sorte que NatsConsumer copie chaque en-tête de message NATS entrant sur l'Exchange — y compris
CamelHttpUri. Le producteur camel-http honore cet en-tête comme URI de sa requête, donc toute personne pouvant publier sur le
sujet consommé redirige la requête sortante vers une cible de son choix (SSRF, CWE-20). La même technique
atteint tout producteur contrôlé par en-têtes (CamelFileName, CamelSqlQuery, ...).
Chaque sous-répertoire est un projet autonome (plus un courtier NATS démarré par son docker-compose.yml) avec son
propre Dockerfile et README. En bref, pour l'un ou l'autre :
cd camel-spring-boot # ou : cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
| Propriété | Valeur |
|---|---|
| Composant | camel-nats |
| Classe affectée | org.apache.camel.component.nats.NatsConfiguration (DefaultHeaderFilterStrategy par défaut) / NatsConsumer |
| CWE | CWE-20 : Validation incorrecte des entrées |
| Impact | Un éditeur du sujet injecte des en-têtes de contrôle Camel → oriente les producteurs en aval (SSRF démontré ici) |
| Versions affectées | De 4.0.0 avant 4.14.8, de 4.15.0 avant 4.18.3, de 4.19.0 avant 4.21.0 |
| Versions corrigées | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23515 |
Ces reproducteurs sont fournis uniquement pour la recherche en sécurité et les tests autorisés, pour une vulnérabilité publiquement divulguée et corrigée. Ne les utilisez pas contre des systèmes sans autorisation explicite.