Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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-46454 — Reprodutor para CVE-2026-46454 — Injeção de cabeçalho Bayeux de entrada no Apache Camel camel-cometd (injeção de cabeçalho de controle não autenticada no Camel → direcionamento de produtor a jusante / RCE) | Kitploit
Ferramentas/GitHubGitHub/oscerd/cve-2026-46454
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoRed Teaming
GitHuboscerd/cve-2026-46454

CVE-2026-46454

Reprodutor para CVE-2026-46454 — Injeção de cabeçalho Bayeux de entrada no Apache Camel camel-cometd (injeção de cabeçalho de controle não autenticada no Camel → direcionamento de produtor a jusante / RCE)

Ver Repositório
4há 2 mesesAinda 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 de Injeção de Cabeçalho Bayeux de Entrada do camel-cometd (CVE-2026-46454)

Este projeto demonstra uma injeção de cabeçalho de mensagem no componente camel-cometd do Apache Camel, rastreada como CVE-2026-46454. O componente mapeia cabeçalhos de mensagens Bayeux (CometD) de entrada para o Camel Exchange sem um HeaderFilterStrategy. CometdBinding.createCamelMessage copia todo o mapa ext.CamelHeaders fornecido pelo cliente CometD diretamente para a mensagem Camel (message.setHeaders(...)), portanto qualquer nome de cabeçalho — incluindo cabeçalhos de controle internos do Camel como CamelHttpUri, CamelFileName, CamelJmsDestinationName (ou, como aqui, os cabeçalhos de controle do camel-exec) — é aceito sem modificação. Como um CometdComponent instala nenhum SecurityPolicy Bayeux por padrão, qualquer cliente que consiga completar o handshake Bayeux pode publicar tal mensagem sem autenticação e direcionar produtores downstream na rota.

Aviso: https://camel.apache.org/security/CVE-2026-46454.html

Resumo da Vulnerabilidade

PropriedadeValor
Componentecamel-cometd
Classe Afetadaorg.apache.camel.component.cometd.CometdBinding#createCamelMessage (message.setHeaders(...))
CWECWE-20: Validação de Entrada Incorreta
ImpactoInjeção não autenticada de cabeçalhos de controle do Camel → direcionar produtores downstream (RCE via exec aqui)
Versões AfetadasDe 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 Corrigidas4.14.8, 4.18.3, 4.21.0
JIRACAMEL-23507
RelatorYu Bao (PayPal)

Mesma família de injeção de cabeçalho que CVE-2025-27636, CVE-2025-29891, CVE-2025-30177, CVE-2026-40453 e CVE-2026-47323 — componentes que mapeiam cabeçalhos de entrada no Exchange sem filtrar o namespace Camel.

Detalhes Técnicos

// CometdBinding.createCamelMessage(...) - affected 4.18.2
Message message = new DefaultMessage(camelContext);
message.setBody(data);
Map<String, Object> headers = getHeadersFromMessage(cometdMessage);   // reads client-supplied ext.CamelHeaders
if (headers != null) {
    message.setHeaders(headers);                                      // <-- no HeaderFilterStrategy
}

O cliente controla ext.CamelHeaders, portanto pode definir qualquer cabeçalho de controle do Camel no Exchange. A correção (4.14.8 / 4.18.3 / 4.21.0) implementa um HeaderFilterStrategy (um TODO de longa data no código) que filtra o namespace Camel* / camel* de forma insensível a maiúsculas/minúsculas no mapeamento de entrada.

A rota da vítima

from("cometd://0.0.0.0:8088/service/inject")
    .to("exec:echo?args=hello");     // route author only intends to run: echo hello

Um atacante publica em /service/inject com ext.CamelHeaders = { CamelExecCommandExecutable: "/usr/bin/touch", CamelExecCommandArgs: "/tmp/pwned" }; o binding os mapeia para o Exchange e o produtor exec executa o comando do atacante em vez disso.

Estrutura do repositório

Autocontido: o consumidor camel-cometd executa um servidor Bayeux incorporado (porta 8088) dentro da aplicação, e o endpoint /exploit/attack atua como o cliente CometD não autenticado.

CVE-2026-46454/
├── pom.xml                 # camel-cometd + camel-exec 4.18.2; cometd 9.0.0 client; Jetty pinned to 12.1.6
├── Dockerfile
├── docker-compose.yml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── VictimRoute.java        # from("cometd://.../service/inject").to("exec:echo")
    │   └── ExploitController.java  # attacker BayeuxClient: handshake + publish with ext.CamelHeaders
    └── resources/
        └── application.properties

Pré-requisitos

  • Java 17+ e Maven 3.8+
  • Docker (executa o reprodutor)

Passos para Reprodução

Passo 1: Compilar e iniciar o contêiner

mvn clean package -DskipTests
docker compose up -d --build

Passo 2: Disparar a injeção de cabeçalho (RCE)

curl -s http://localhost:8080/exploit/attack
# -> Handshaked (unauthenticated) and published to /service/inject with ext.CamelHeaders = {...}.
#    The camel-cometd consumer mapped them onto the Exchange; the exec producer ran the command.
#
#    >>> RCE proof — /tmp/pwned exists: true

Passo 3: Verificar

docker exec cve-2026-46454 ls -la /tmp/pwned

Limpeza

docker compose down

Vetores de Ataque

Qualquer rota com um consumidor camel-cometd alimentando um produtor downstream cujo comportamento é controlado por cabeçalhos Camel — um produtor HTTP (CamelHttpUri), um produtor de arquivo (CamelFileName), um produtor JMS (CamelJmsDestinationName), um produtor exec (CamelExecCommand*), etc. Qualquer cliente que consiga fazer handshake com o endpoint Bayeux pode injetá-los; nenhuma autenticação é necessária por padrão. Os cabeçalhos injetados persistem através de hops internos direct, seda e vm.

Condições de Exploração

  1. Um consumidor camel-cometd em uma versão afetada, roteado para um produtor controlável por cabeçalho.
  2. Nenhum SecurityPolicy Bayeux no CometdComponent (o padrão), então qualquer cliente pode publicar.

Correção Recomendada

Atualizar para 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23507), que adiciona um HeaderFilterStrategy ao binding cometd que bloqueia cabeçalhos Camel* / camel* fornecidos pelo cliente no mapeamento de entrada.

Mitigação

Até a atualização:

  1. Remover cabeçalhos de controle do Camel no início da rota: .removeHeaders("Camel*") e .removeHeaders("camel*").
  2. Instalar um SecurityPolicy Bayeux explícito no CometdComponent para que apenas clientes autenticados possam publicar.

Aviso Legal

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

Baixar ferramenta