
Reprodutor para CVE-2026-46455 — Apache Camel camel-keycloak sem a verificação TokenVerifier.IS_ACTIVE (tokens de acesso expirados aceitos)
| Runtime | Diretório | 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 (inclui Camel 4.20.0) |
Ambos são versões afetadas (corrigidas em 4.18.3 / 4.21.0), e ambos demonstram o mesmo defeito:
KeycloakSecurityHelper.parseAndVerifyAccessToken verifica a assinatura, o subject e o issuer do token, mas omite
a verificação TokenVerifier.IS_ACTIVE do Keycloak — portanto exp / nbf nunca são aplicados e um token expirado é
aceito. Qualquer token vazado ou capturado permanece utilizável indefinidamente (CWE-613 + CWE-287).
Cada PoC gera um token de acesso corretamente assinado cujo exp está 30 minutos no passado e o executa tanto no
helper vulnerável quanto em um verificador com IS_ACTIVE adicionado (o que a correção faz), provando que o helper aceita o que
IS_ACTIVE rejeita. Nenhum servidor Keycloak é necessário — o token é assinado com uma chave RSA gerada em processo.
Cada subdiretório é um projeto autocontido com seu próprio Dockerfile, docker-compose.yml e README. Em
resumo, para qualquer um deles:
cd camel-spring-boot # ou: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
| Propriedade | Valor |
|---|---|
| Componente | camel-keycloak |
| Classe Afetada | org.apache.camel.component.keycloak.security.KeycloakSecurityHelper#parseAndVerifyAccessToken |
| CWE | CWE-613 (Expiração de Sessão Insuficiente) + CWE-287 (Autenticação Incorreta) |
| Impacto | Tokens de acesso expirados / ainda não válidos aceitos → requisições autenticadas fora do período de validade do token |
| Versões Afetadas | De 4.18.0 antes de 4.18.3, de 4.19.0 antes de 4.21.0 (helper introduzido em 4.18.0; 4.14.x LTS não afetada) |
| Versões Corrigidas | 4.18.3, 4.21.0 |
| JIRA | CAMEL-23504 |
Estes reprodutores são fornecidos apenas para pesquisa de segurança e testes autorizados, para uma vulnerabilidade divulgada publicamente e corrigida. Não os utilize contra sistemas sem permissão explícita.