
Reprodutor para CVE-2026-46726: injeção de cabeçalho de entrada não filtrada no Apache Camel camel-vertx-websocket permitindo SSRF e divulgação de segredos via resolução de property-placeholder (corrigido em 4.14.8/4.18.3/4.21.0)
Reprodutores de prova de conceito executáveis para a mesma vulnerabilidade do Apache Camel, um por runtime:
| Runtime | Diretório | Stack | Feed WebSocket |
|---|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 | porta separada :8090 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (inclui Camel 4.20.0) | servidor HTTP Quarkus gerenciado :8080 |
Ambas são versões afetadas (corrigidas em 4.14.8 / 4.18.3 / 4.21.0), e ambas demonstram o mesmo defeito:
VertxWebsocketConsumer#populateExchangeHeaders copia os parâmetros de consulta da conexão WebSocket para o
Exchange sem HeaderFilterStrategy. Um cliente fornece CamelHttpUri como parâmetro de consulta e direciona o
produtor camel-http downstream para onde quiser (SSRF, CWE-918). Como o produtor também resolve placeholders de
propriedades do Camel nesse URI controlado pelo atacante, um {{app.secret}} injetado é expandido para seu valor real
e enviado ao coletor do atacante (exposição de informações, CWE-200).
As duas variantes diferem apenas em onde o feed é servido: a extensão
camel-quarkus-vertx-websocketsempre vincula o consumidor ao servidor HTTP Quarkus gerenciado e rejeita qualquer outro host/porta, então a variante Quarkus serve/feedem:8080junto com seus endpoints REST. O defeito não é afetado.
Cada subdiretório é um projeto autônomo com seu próprio Dockerfile, docker-compose.yml 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-vertx-websocket |
| Classe Afetada | org.apache.camel.component.vertx.websocket.VertxWebsocketConsumer#populateExchangeHeaders (sem HeaderFilterStrategy em parâmetros de consulta/caminho de entrada) |
| CWE | CWE-20 → CWE-918 (SSRF) e CWE-200 (Exposição de Informações) |
| Impacto | Injetar CamelHttpUri via parâmetro de consulta WebSocket → SSRF a partir de um produtor HTTP downstream + divulgação de segredos de env/propriedade/vault via resolução de placeholders |
| 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-23532 (PR apache/camel#23285) |
| Crédito | Kamalpreet Singh |
Aviso: https://camel.apache.org/security/CVE-2026-46726.html
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.