
Reprodutor para CVE-2026-46457 — injeção de cabeçalho de entrada do camel-nats do Apache Camel (injeção de cabeçalho de controle do Camel via um publicador NATS; CamelHttpUri -> SSRF)
| Runtime | Diretório | 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 (inclui Camel 4.20.0) |
Ambos são versões afetadas (corrigidas em 4.14.8 / 4.18.3 / 4.21.0), e ambos demonstram o mesmo defeito:
NatsConfiguration define como padrão headerFilterStrategy para um simples new DefaultHeaderFilterStrategy() sem
regras de entrada, portanto NatsConsumer copia todos os cabeçalhos de mensagens NATS de entrada para o Exchange — incluindo
CamelHttpUri. O produtor camel-http honra esse cabeçalho como seu URI de requisição, então qualquer pessoa que possa publicar no
subject consumido redireciona a requisição de saída para um destino de sua escolha (SSRF, CWE-20). A mesma técnica
alcança qualquer produtor controlado por cabeçalho (CamelFileName, CamelSqlQuery, ...).
Cada subdiretório é um projeto autocontido (mais um broker NATS iniciado pelo seu docker-compose.yml) com seu
próprio Dockerfile e README. Em resumo, para qualquer um deles:
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
| Propriedade | Valor |
|---|---|
| Componente | camel-nats |
| Classe Afetada | org.apache.camel.component.nats.NatsConfiguration (DefaultHeaderFilterStrategy padrão) / NatsConsumer |
| CWE | CWE-20: Validação de Entrada Incorreta |
| Impacto | Um publicador de subject injeta cabeçalhos de controle do Camel → direciona produtores downstream (SSRF demonstrado aqui) |
| Versões Afetadas | De 4.0.0 antes de 4.14.8, de 4.15.0 antes de 4.18.3, de 4.19.0 antes de 4.21.0 |
| Versões Corrigidas | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23515 |
Estes reprodutores são fornecidos apenas para pesquisa de segurança e testes autorizados, para uma vulnerabilidade divulgada publicamente e corrigida. Não os utilize contra sistemas sem permissão explícita.