
Prova de conceito de exploit para CVE-2026-29000, uma bypass de autenticação no pac4j-jwt via JWT não assinado encapsulado em JWE, permitindo escalonamento de privilégios.
Esta ferramenta destina-se exclusivamente a fins educacionais e de testes de segurança ética. Não apoio e não apoiarei ações maliciosas de qualquer forma ou maneira. Use por sua conta e risco.
CVE-2026-29000 é uma vulnerabilidade crítica (CVSS 10.0) na biblioteca pac4j-jwt. Ela decorre de uma lógica de validação incorreta no JwtAuthenticator ao lidar com tokens aninhados (criptografados).
A falha existe porque, embora o pac4j descriptografe corretamente um token JWE (JSON Web Encryption) usando a chave do servidor, ele não aplica a verificação de assinatura no JWT interno. Isso permite que um atacante envolva um JWT não assinado (usando {"alg": "none"}) dentro de um wrapper JWE válido. O servidor descriptografa o JWE, confia no payload interno e concede acesso.
pac4j anteriores a 4.5.9, 5.7.9 e 6.3.3.ROLE_ADMIN).O script fornecido, CVE-2026-29000.py, automatiza as seguintes etapas:
/api/auth/jwks.alg: none e claims administrativas.Certifique-se de ter as bibliotecas Python necessárias instaladas:
pip install requests jwcrypto
python3 CVE-2026-29000.py <TARGET_URL>
Exemplo:
python3 CVE-2026-29000.py http://vulnerable-app.local:8080
Para mitigar esta vulnerabilidade, tome as seguintes ações:
pac4j-jwt para a versão 4.5.9, 5.7.9 ou 6.3.3 (ou superior) imediatamente.JwtAuthenticator exija explicitamente uma assinatura válida e não permita o algoritmo none.Criado por: Cipher1x1