
Ferramenta de geração de exploits baseada em Rust para CVE-2026-29000, uma bypass de autenticação no pac4j-jwt via JWT alg:none aninhado em JWE, automatizando a recuperação de JWKS e a forja de tokens para testes autorizados.
Este repositório contém uma implementação especializada em Rust para explorar a CVE-2026-29000, uma vulnerabilidade de bypass de autenticação no pac4j-jwt. A vulnerabilidade decorre de uma "Omissão de Validação de Assinatura" quando um PlainJWT (alg: none) é aninhado dentro de um contêiner JWE criptografado.
Recuperação Automatizada de JWKS: Busca as chaves RSA públicas do alvo diretamente do endpoint /api/auth/jwks.
Construção de JWS Não Seguro: Cria um JWT com algoritmo None contendo claims administrativas (ROLE_ADMIN).
Wrapper JWE: Encapsula o token interno malicioso usando RSA-OAEP-256 e A128GCM para contornar filtros perimetrais iniciais.
Execução Assíncrona: Alimentado por tokio e reqwest para rede eficiente.
Rust/Cargo instalado.
Acesso de rede ao alvo (padrão: http://principal.htb:8080).
Instalação Clone o repositório:
git clone https://github.com/0xW1LD/CVE-2026-29000.git
cd CVE-2026-29000
Execute o gerador de exploit para gerar o JWE forjado:
cargo run
O exploit visa uma falha de lógica onde a biblioteca descriptografa o JWE externo, mas falha em validar recursivamente a assinatura do JWS interno se o cabeçalho especificar alg: none.
Camada Interna: Um JWT com alg: None contendo o subject de administrador.
Camada Externa: O JWT interno é criptografado usando a própria chave pública do servidor.
Resultado: O servidor descriptografa o token, vê que foi criptografado corretamente e confia no payload interno sem verificar a assinatura.
Esta ferramenta é apenas para fins educacionais e testes de segurança autorizados (ambientes CTF/Lab). O acesso não autorizado a sistemas de computador é ilegal.