
Reproducer per CVE-2026-46455 — Apache Camel camel-keycloak: manca il controllo TokenVerifier.IS_ACTIVE (i token di accesso scaduti vengono accettati)
IS_ACTIVE mancante (token scaduti accettati)Reproducer proof-of-concept eseguibili per la stessa vulnerabilità di Apache Camel, uno per runtime:
| Runtime | Directory | Stack |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-keycloak 4.18.2 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (include Camel 4.20.0) |
Entrambe sono versioni vulnerabili (corrette in 4.18.3 / 4.21.0) ed entrambe dimostrano lo stesso difetto:
KeycloakSecurityHelper.parseAndVerifyAccessToken verifica la firma, il soggetto e l'emittente del token, ma omette
il controllo TokenVerifier.IS_ACTIVE di Keycloak — quindi exp / nbf non vengono mai applicati e un token
scaduto viene accettato. Qualsiasi token divulgato o intercettato rimane utilizzabile a tempo indeterminato (CWE-613 + CWE-287).
Ogni PoC genera un access token firmato correttamente il cui exp è di 30 minuti nel passato e lo esegue sia tramite
l'helper vulnerabile sia tramite un verificatore con IS_ACTIVE aggiunto (ciò che fa la correzione), dimostrando che
l'helper accetta ciò che IS_ACTIVE rifiuta. Non è richiesto alcun server Keycloak — il token viene firmato con una
chiave RSA generata in-process.
Ogni sottodirectory è un progetto autonomo con il proprio Dockerfile, docker-compose.yml e README. In
breve, per entrambi:
cd camel-spring-boot # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
Avviso: https://camel.apache.org/security/CVE-2026-46455.html
Questi reproducer sono forniti esclusivamente per ricerca sulla sicurezza e test autorizzati, per una vulnerabilità divulgata pubblicamente e corretta. Non utilizzarli contro sistemi senza esplicita autorizzazione.
| Proprietà | Valore |
|---|
| Componente | camel-keycloak |
| Classe interessata | org.apache.camel.component.keycloak.security.KeycloakSecurityHelper#parseAndVerifyAccessToken |
| CWE | CWE-613 (Insufficient Session Expiration) + CWE-287 (Improper Authentication) |
| Impatto | Access token scaduti / non ancora validi accettati → richieste autenticate al di fuori del periodo di validità del token |
| Versioni interessate | Dalla 4.18.0 fino alla 4.18.3 (esclusa), dalla 4.19.0 fino alla 4.21.0 (esclusa) (helper introdotto in 4.18.0; LTS 4.14.x non interessata) |
| Versioni corrette | 4.18.3, 4.21.0 |
| JIRA | CAMEL-23504 |