
Reprodutor para CVE-2026-46592: injeção de cabeçalho operationName no Apache Camel camel-cxf redirecionando a operação SOAP invocada (deputado confuso) de uma leitura para uma destrutiva (corrigido em 4.14.8/4.18.3/4.21.0)
operationName Injeção de Cabeçalho (Redirecionamento de Operação SOAP)Reprodutores executáveis de prova de conceito para a mesma vulnerabilidade do Apache Camel, um por runtime:
| Runtime | Diretório | Stack | Serviço SOAP backend |
|---|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 | CXF ServerFactoryBean em sua própria porta :9000 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (inclui Camel 4.20.0) | quarkus-cxf no servidor gerenciado, /soapservice/account |
Ambas são versões afetadas (corrigidas em 4.14.8 / 4.18.3 / 4.21.0) e demonstram o mesmo defeito:
CxfProducer#getBindingOperationInfo primeiro procura um cabeçalho de mensagem operationName e só recorre ao
defaultOperationName do endpoint quando ele está ausente. O valor dessa constante de cabeçalho é a string simples
operationName — não CamelCxfOperationName — portanto, o filtro de fronteira HTTP (que remove apenas Camel*) deixa
passar direto um cabeçalho HTTP de entrada com esse nome. Um cliente não confiável adiciona operationName: deleteAccount e
o getBalance da rota, fixo e somente leitura, torna-se uma chamada destrutiva (CWE-441, deputado confuso).
As duas variantes diferem apenas em como o serviço SOAP backend é disponibilizado: a variante Quarkus o publica com quarkus-cxf no servidor HTTP Quarkus gerenciado (portanto, o contrato carrega anotações JAX-WS
@WebService), enquanto a variante Spring Boot o cria programaticamente com um CXFServerFactoryBeanem uma porta separada. O defeito não é afetado.
Cada subdiretório é um projeto autossuficiente com seu próprio Dockerfile, docker-compose.yml e README. Em
resumo, para qualquer um deles:
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
Aviso de segurança: https://camel.apache.org/security/CVE-2026-46592.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.
| Propriedade | Valor |
|---|
| Componente | camel-cxf (camel-cxf-soap; a constante reside em camel-cxf-common, portanto camel-cxfrs também é afetado) |
| Classe Afetada | org.apache.camel.component.cxf.jaxws.CxfProducer#getBindingOperationInfo lendo CxfConstants.OPERATION_NAME ("operationName") |
| CWE | CWE-20 (Validação Incorreta de Entrada) / CWE-441 (Proxy ou Intermediário Não Intencional — Deputado Confuso) |
| Impacto | Um cliente HTTP define operationName → o produtor invoca uma operação SOAP diferente (ex.: uma destrutiva) |
| Versões Afetadas | De 4.0.0 anterior a 4.14.8, de 4.15.0 anterior a 4.18.3, de 4.19.0 anterior a 4.21.0 |
| Versões Corrigidas | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23526 (PR apache/camel#23326) |
| Crédito | Yu Bao (PayPal) |