Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-29000-pac4j-jwt — CVE-2026-29000 PoC: bypass de autenticação PlainJWT-in-JWE no pac4j-jwt. | Kitploit
Ferramentas/GitHubGitHub/strikoder-premium/cve-2026-29000-pac4j-jwt
Autenticação e AutorizaçãoAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de Penetração
GitHubstrikoder-premium/cve-2026-29000-pac4j-jwt

CVE-2026-29000-pac4j-jwt

CVE-2026-29000 PoC: bypass de autenticação PlainJWT-in-JWE no pac4j-jwt.

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
3há 3 mesesAinda não revisado

pac4j-jwe-forge (CVE-2026-29000)

Prova de conceito para CVE-2026-29000. Visa versões do pac4j-jwt anteriores a 4.5.9, 5.7.9 e 6.3.3.

A vulnerabilidade é direta: a biblioteca aceita um PlainJWT (sem assinatura, alg=none) desde que esteja encapsulado em um JWE válido. Como o servidor expõe sua chave pública RSA por meio de um endpoint JWKS, qualquer pessoa pode criptografar um JWT arbitrário sem assinatura em um JWE no qual o servidor confiará — incluindo um com ROLE_ADMIN.


Como funciona

  1. Obtenha a chave pública RSA do endpoint JWKS do alvo
  2. Construa um JWT sem assinatura (alg=none) com as claims que desejar
  3. Criptografe-o com a chave pública do servidor usando
  4. Envie o JWE resultante como token Bearer

O servidor o descriptografa, confia nas claims internas e nunca verifica se o JWT interno não possui assinatura.


Requisitos

Python 3.13+ com uv, ou instale as dependências manualmente:

root@kitploit:~
pip install jwcrypto requests

Uso

root@kitploit:~
[uv run / python3] CVE-2026-29000.py --url <base_url> --jwks <jwks_path> [opções]

Obrigatório:

flagdescrição
--urlURL base do alvo, ex.: http://10.10.11.x:8080
--jwkscaminho ou URL completa do endpoint JWKS

Opcional:

Exemplos:

root@kitploit:~
python3 exploit.py --url http://10.10.11.x:8080 --jwks /api/auth/jwks

python3 exploit.py --url http://10.10.11.x:8080 --jwks /api/auth/jwks --user john --role ROLE_ADMIN

python3 exploit.py --url http://10.10.11.x:8080 --jwks /.well-known/jwks.json --enc A128GCM

Encontrando o endpoint JWKS

Nem sempre é óbvio. Bons lugares para procurar:

  • /robots.txt — frequentemente lista caminhos restritos ou internos
  • /api/auth/jwks
  • /.well-known/jwks.json
  • /.well-known/openid-configuration

Encontrando o alg/enc correto

Se o token for rejeitado, o aplicativo pode esperar um algoritmo de criptografia específico. Verifique /static/js/app.js para algo como:

root@kitploit:~
const JWE_ALG = "RSA-OAEP-256";
const JWE_ENC = "A128GCM";

Em seguida, execute novamente com --enc A128GCM.

O método de armazenamento do token também costuma estar lá:

root@kitploit:~
class TokenManager {
    static getToken() {
        return sessionStorage.getItem('auth_token');
    }
}

Se for sessionStorage, troque o token diretamente no DevTools em Application > Session Storage.


Versões afetadas

  • pac4j-jwt < 4.5.9
  • pac4j-jwt < 5.7.9
  • pac4j-jwt < 6.3.3

Corrigido nas versões 4.5.9, 5.7.9 e 6.3.3.

Baixar ferramenta
flagpadrãodescrição
--useradminvalor para a claim sub
--roleROLE_ADMINpapel a forjar (ROLE_ADMIN, ROLE_MANAGER, ROLE_USER)
--issuerprincipal-platformvalor para a claim iss
--encA256GCMcriptografia de conteúdo do JWE (A256GCM ou A128GCM)