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-auth-bypass — Prova de Conceito (PoC) para uma vulnerabilidade de bypass de autenticação que afeta aplicações que utilizam pac4j-jwt com JWE (JSON Web Encryption). | Kitploit
Ferramentas/GitHubGitHub/ptechamanja/cve-2026-29000-pac4j-jwt-auth-bypass
Análise de VulnerabilidadesExploraçãoSegurança WebCTFTestes de PenetraçãoAutenticação
GitHubptechamanja/cve-2026-29000-pac4j-jwt-auth-bypass

CVE-2026-29000-pac4j-jwt-auth-bypass

Prova de Conceito (PoC) para uma vulnerabilidade de bypass de autenticação que afeta aplicações que utilizam pac4j-jwt com JWE (JSON Web Encryption).

Ver Repositório
17há 5 mesesAinda 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

HTB Principal — Writeup do CVE-2026-29000

Aviso legal: Este exploit foi desenvolvido exclusivamente para a máquina aposentada "Principal" do HackTheBox. Apenas para fins educacionais. Não use contra sistemas que você não possui ou para os quais não tem permissão explícita para testar.

Informações da Máquina

CampoDetalhes
NomePrincipal
PlataformaHackTheBox
Dificuldade—
StatusAposentada

Vulnerabilidade — CVE-2026-29000

Biblioteca afetada: pac4j-jwt < 4.5.9 / 5.7.9 / 6.3.3
Severidade: Crítica
Tipo: Bypass de Autenticação

Resumo

Uma falha de lógica no JwtAuthenticator permite que um atacante contorne a autenticação envolvendo um PlainJWT não assinado (alg=none) dentro de um JWE (JWT criptografado).

Quando o servidor descriptografa o JWE, ele tenta analisar o token interno como um SignedJWT. Como o token interno é um PlainJWT, o objeto SignedJWT é nulo e a verificação de assinatura é completamente ignorada. O servidor então constrói um perfil de usuário a partir das claims não verificadas — permitindo a suplantação total de qualquer usuário, incluindo administradores.

Requisitos do Ataque

  • A chave pública RSA do servidor (frequentemente exposta via endpoint JWKS)
  • Conhecimento dos nomes internos das claims (ex.: roles, formato do subject)

Fluxo do Exploit

root@kitploit:~
Criar claims maliciosas (sub=admin, role=ROLE_ADMIN)
        ↓
Construir PlainJWT não assinado (alg=none)
        ↓
Envolver PlainJWT dentro de JWE usando a chave pública RSA do servidor
        ↓
Enviar token JWE ao servidor
        ↓
Servidor descriptografa JWE → encontra PlainJWT → ignora verificação de assinatura → concede acesso

Exploit

Veja exploit.py


Correção

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

  • 4.5.9 ou posterior
  • 5.7.9 ou posterior
  • 6.3.3 ou posterior

Ou rejeite explicitamente tokens internos PlainJWT após a descriptografia do JWE:

root@kitploit:~
if (jwt instanceof PlainJWT) {
    throw new CredentialsException("PlainJWT não permitido dentro de JWE");
}

⚙️ Fluxo do Ataque

  1. Obter a chave pública de:
root@kitploit:~

/api/auth/jwks

  1. Criar JWT malicioso:
  • alg: none
  • Injetar role de administrador
  1. Envolver dentro de JWE usando a chave pública

  2. Enviar como:

root@kitploit:~

Authorization: Bearer <token>

  1. Obter acesso não autorizado

🛠️ Uso do PoC

Instalar dependências

root@kitploit:~
pip install jwcrypto requests

Executar o exploit

root@kitploit:~
python3 poc.py \
--jwks-url http://target/api/auth/jwks \
--target http://target/api/dashboard

📤 Exemplo de Saída

root@kitploit:~
[+] Token Forjado:
eyJhbGciOiJSU0EtT0FFUC0yNTYi...

[+] Injeção no Navegador:
sessionStorage.setItem("auth_token", "eyJhbGciOiJSU0EtT0FFUC0yNTYi...")

[+] Status: 200
{"user":{"username":"admin","role":"ROLE_ADMIN"}}

🌐 Exploração no Navegador

Abra o DevTools → Console:

root@kitploit:~
sessionStorage.setItem("auth_token", "<COLE_O_TOKEN_AQUI>")

Em seguida, navegue para:

root@kitploit:~
/dashboard

🔥 Impacto

  • Bypass total de autenticação
  • Escalação de privilégios para administrador
  • Acesso não autorizado à API
  • Possível movimento lateral

🛡️ Mitigação

  • Sempre verificar assinaturas JWT (JWS) após a descriptografia
  • Rejeitar tokens com alg: none
  • Aplicar políticas rigorosas de validação de tokens
  • Não confiar apenas na criptografia para garantir confiança

👤 Autor

  • Doomsknight

Referências

  • Aviso de segurança do pac4j
  • HackTheBox
Baixar ferramenta