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-PoC — CVE-2026-29000 - pac4j-jwt (< 4.5.9 / < 5.7.9 / < 6.3.3) PoC de bypass de autenticação do JwtAuthenticator | Kitploit
Ferramentas/GitHubGitHub/dua2z3rr/cve-2026-29000-poc
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebCTFTestes de PenetraçãoAutenticaçãoAprendizado e Educação
GitHubdua2z3rr/cve-2026-29000-poc

CVE-2026-29000-PoC

CVE-2026-29000 - pac4j-jwt (< 4.5.9 / < 5.7.9 / < 6.3.3) PoC de bypass de autenticação do JwtAuthenticator

Ver Repositório
12há 18 diasAinda não revisado

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

CVE-2026-29000 — Prova de Conceito de Bypass de Autenticação do JwtAuthenticator do pac4j-jwt

Uma prova de conceito para CVE-2026-29000, um bypass de autenticação no componente pac4j-jwt JwtAuthenticator (CVSS 10.0, Crítico).

O script forja um token que se passa por qualquer usuário com qualquer função — sem conhecer um único segredo — desde que o alvo exponha sua chave RSA pública.

[!WARNING] Esta ferramenta é fornecida apenas para fins educacionais e testes de segurança autorizados. Foi escrita para resolver a máquina Hack The Box "Principal", e os valores padrão (iss, role, kid) são adaptados para essa máquina. Utilize-a apenas contra sistemas que você possui ou está explicitamente autorizado a testar.


A vulnerabilidade

As versões < 4.5.9, < 5.7.9 e < 6.3.3 do pac4j-jwt contêm uma falha lógica no JwtAuthenticator ao processar JWTs criptografados (JWE).

Quando o JwtAuthenticator descriptografa um JWE, ele tenta interpretar o token interno como um SignedJWT. Se o token interno for um PlainJWT não assinado (alg: none), o objeto SignedJWT retorna null e, devido ao erro lógico, o caminho de verificação de assinatura é completamente ignorado. O autenticador então constrói um perfil de usuário diretamente a partir das declarações não verificadas.

Em outras palavras, a criptografia JWE externa — que requer apenas a chave pública do servidor — é confundida como prova de autenticidade, de modo que qualquer atacante que possa ler a chave pública pode cunhar tokens totalmente confiáveis.

Cadeia de ataque

  1. Buscar a chave pública RSA do alvo a partir do seu endpoint JWKS (ex.: /api/auth/jwks).
  2. Forjar um PlainJWT não assinado (alg: none) com declarações escolhidas pelo atacante (sub, role, iss, …).
  3. Embrulhar esse PlainJWT em um envelope JWE criptografado com a chave pública do alvo.
  4. Enviar o JWE compacto resultante como um token Bearer. O JwtAuthenticator vulnerável o descriptografa, pula a verificação de assinatura e confia nas declarações forjadas.

Requisitos

  • Python 3.8+
  • Dependências do requirements.txt:
root@kitploit:~
pip install -r requirements.txt

(requests, jwcrypto, cryptography)


Uso

root@kitploit:~
python3 exploit.py -u <username> [options]

Opções

OpçãoDescriçãoPadrão
-t, --targetURL base do alvo (ex.: http://host:8080)—
--jwks-urlCaminho do endpoint JWKS/api/auth/jwks
--jwks-fileCarregar JWKS de um arquivo local em vez de buscar de --target—
-u, --usernameValor para a declaração sub (obrigatório)—
--roleValor para a declaração roleROLE_ADMIN
--issValor para a declaração issprincipal-platform
--expValidade do token em segundos3600
--verify-endpointEndpoint protegido para testar o token forjado (ex.: /api/settings)—
-k, --insecureDesabilitar verificação de certificado TLSoff
-o, --outputEscrever o JWE forjado em um arquivo em vez da stdoutstdout
-v, --verboseImprimir o payload do JWT forjado na stderroff

Você deve fornecer --target (para buscar o JWKS pela rede) ou --jwks-file (para fornecê-lo localmente).

Exemplos

Forjar um token de administrador buscando a chave pública do alvo e imprimi-lo na stdout:

root@kitploit:~
python3 exploit.py -t http://target:8080 -u admin

Forjar um token e, em seguida, testá-lo automaticamente contra um endpoint protegido:

root@kitploit:~
python3 exploit.py -t http://target:8080 -u admin \
    --verify-endpoint /api/settings -v

Usar um JWKS salvo localmente e salvar o token em um arquivo:

root@kitploit:~
python3 exploit.py --jwks-file jwks.json -u admin -o token.jwe

Remediação

Atualize org.pac4j:pac4j-jwt para uma versão corrigida:

  • Linha 4.x → 4.5.9 ou mais novo
  • Linha 5.x → 5.7.9 ou mais novo
  • Linha 6.x → 6.3.3 ou mais novo

Licença

Lançado sob a Licença MIT.

Baixar ferramenta