
Reproducer for CVE-2026-46455 — Apache Camel camel-keycloak missing TokenVerifier.IS_ACTIVE check (expired access tokens accepted)
IS_ACTIVE Check (Expired Tokens Accepted)Runnable proof-of-concept reproducers for the same Apache Camel vulnerability, one 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 (bundles Camel 4.20.0) |
Both are affected versions (fixed in 4.18.3 / 4.21.0), and both demonstrate the identical defect:
KeycloakSecurityHelper.parseAndVerifyAccessToken verifies the token's signature, subject and issuer, but omits
Keycloak's TokenVerifier.IS_ACTIVE check — so exp / nbf are never enforced and an expired token is
accepted. Any leaked or captured token remains usable indefinitely (CWE-613 + CWE-287).
Each PoC mints a correctly-signed access token whose exp is 30 minutes in the past and runs it through both the
vulnerable helper and a verifier with IS_ACTIVE added (what the fix does), proving the helper accepts what
IS_ACTIVE rejects. No Keycloak server is required — the token is signed with an RSA key generated in-process.
Each subdirectory is a self-contained project with its own Dockerfile, docker-compose.yml, and README. In
short, for either:
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
Advisory: https://camel.apache.org/security/CVE-2026-46455.html
These reproducers are provided for security research and authorized testing only, for a publicly disclosed and fixed vulnerability. Do not use them against systems without explicit permission.
| Property | Value |
|---|
| Component | camel-keycloak |
| Affected Class | org.apache.camel.component.keycloak.security.KeycloakSecurityHelper#parseAndVerifyAccessToken |
| CWE | CWE-613 (Insufficient Session Expiration) + CWE-287 (Improper Authentication) |
| Impact | Expired / not-yet-valid access tokens accepted → requests authenticated outside the token lifetime |
| Affected Versions | From 4.18.0 before 4.18.3, from 4.19.0 before 4.21.0 (helper introduced in 4.18.0; 4.14.x LTS not affected) |
| Fixed Versions | 4.18.3, 4.21.0 |
| JIRA | CAMEL-23504 |