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-Lab — Laboratório de prova de conceito em nível de biblioteca demonstrando a CVE-2026-29000 no pac4j-jwt, comparando versões vulneráveis e corrigidas com Docker para mostrar a aceitação e rejeição de JWTs forjados. | Kitploit
Ferramentas/GitHubGitHub/rootdirective-sec/cve-2026-29000-lab
Análise de VulnerabilidadesExploraçãoSegurança WebAutenticação
GitHubrootdirective-sec/cve-2026-29000-lab

CVE-2026-29000-Lab

Laboratório de prova de conceito em nível de biblioteca demonstrando a CVE-2026-29000 no pac4j-jwt, comparando versões vulneráveis e corrigidas com Docker para mostrar a aceitação e rejeição de JWTs forjados.

Ver Repositório
1há 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

CVE-2026-29000 — Laboratório de PoC em Nível de Biblioteca para pac4j-jwt

Resumo

Este repositório contém um PoC em nível de biblioteca para a CVE-2026-29000 em pac4j-jwt.

Ele compara o comportamento vulnerável e corrigido com dois casos:

  • Linha de base: um token legítimo deve ser aceito
  • Ataque: um token forjado deve ser aceito nas versões vulneráveis e rejeitado na versão corrigida
VersãoLinha de baseAtaqueResultado
6.0.3✅✅Vulnerável
6.0.4.1✅✅Vulnerável
6.3.3✅❌Corrigida

Este PoC demonstra a criação de perfil autenticado com subject e roles controlados pelo atacante nas versões vulneráveis, enquanto a versão corrigida rejeita o token forjado.


O que é este projeto

Este não é uma demonstração de aplicação web.

É um pequeno programa Java que chama JwtAuthenticator diretamente e compara múltiplas versões de pac4j-jwt dentro do Docker.

O objetivo é comprovar três coisas:

  1. tokens legítimos continuam funcionando
  2. claims forjadas controladas pelo atacante são aceitas pelas versões vulneráveis
  3. claims forjadas controladas pelo atacante são rejeitadas pela versão corrigida

Por que estas versões foram selecionadas

As versões testadas foram escolhidas deliberadamente:

  • 6.0.3 — incluída porque um relatório técnico público reportou um PoC funcional nesta versão
  • 6.0.4.1 — incluída porque dados públicos de advisory a colocam dentro da faixa 6.x afetada
  • 6.3.3 — incluída porque é a versão corrigida para a linha 6.x

Isso dá ao laboratório três pontos de referência úteis:

  • uma versão de referência com PoC público
  • uma versão afetada confirmada por advisory
  • a versão corrigida

Estrutura do projeto

root@kitploit:~
.
├── docker-compose.yml
├── Dockerfile
├── pom.xml
└── src/main/java/lab/Repro.java

Funções dos arquivos

  • docker-compose.yml Define a matriz de testes para cada versão.

  • Dockerfile Compila e executa o PoC dentro de um contêiner.

  • pom.xml Define dependências e compila um fat JAR executável.

  • src/main/java/lab/Repro.java O harness real do PoC.


O que os serviços significam

O arquivo docker-compose.yml define três serviços:

  • v603 = testa pac4j-jwt 6.0.3
  • v6041 = testa pac4j-jwt 6.0.4.1
  • patched = testa pac4j-jwt 6.3.3

Portanto, estes comandos significam "executar o PoC uma vez contra aquela versão específica":

root@kitploit:~
docker compose run --rm v603
docker compose run --rm v6041
docker compose run --rm patched

--rm significa que o contêiner temporário é removido após a execução terminar.


Como executar

Compilar

root@kitploit:~
docker compose build --no-cache

Executar

root@kitploit:~
docker compose run --rm v603
docker compose run --rm v6041
docker compose run --rm patched

O que o PoC faz

Para cada versão, o programa executa dois casos.

1) Linha de base

Ele gera um token legítimo e o valida por meio de JwtAuthenticator.

Resultado esperado:

  • aceito em todas as versões testadas

2) Ataque

Ele gera um token forjado com claims controladas pelo atacante e o valida por meio de JwtAuthenticator.

Resultado esperado:

  • versões vulneráveis → identidade forjada aceita
  • versão corrigida → token forjado rejeitado

Como ler a saída

Saída vulnerável

Você deve ver algo assim:

root@kitploit:~
[case] baseline
  result: ACCEPTED
  observed_subject: alice
  observed_roles: [ROLE_USER]

[case] attack
  result: ACCEPTED
  observed_subject: admin#override
  observed_roles: [ROLE_SUPERUSER, ROLE_ADMIN]

[summary]
  conclusion: VULNERABLE: forged token accepted

Significado:

  • o token normal funciona
  • o token forjado também é aceito
  • o subject e as roles foram substituídos por valores controlados pelo atacante

Saída corrigida

Você deve ver algo assim:

root@kitploit:~
[case] baseline
  result: ACCEPTED
  observed_subject: alice
  observed_roles: [ROLE_USER]

[case] attack
  result: REJECTED
  reason: CredentialsException: A non-signed JWT cannot be accepted as signature configurations have been defined

[summary]
  conclusion: PATCHED: forged token rejected

Significado:

  • o token normal funciona
  • o token forjado é rejeitado
  • a versão corrigida não aceita mais o caminho de JWT interno não assinado usado pelo ataque

Por que este repositório foca no comportamento da biblioteca em vez de um script de token genérico

Esta CVE afeta um caminho de autenticação em nível de biblioteca, não uma única aplicação com um modelo de roles universal.

A parte reutilizável é o formato do ataque:

  • claims forjadas controladas pelo atacante
  • criptografadas como JWE
  • passadas para JwtAuthenticator

O que não é universal entre aplicações reais:

  • nomes de claims
  • nomes de roles
  • mapeamento de autorização
  • material de chave / configuração JWKS
  • tratamento de perfil específico da aplicação

Por causa disso, este repositório foca em comprovar que a biblioteca aceita claims forjadas controladas pelo atacante nas versões vulneráveis, em vez de fingir que existe um token universal que funcionaria automaticamente contra aplicações arbitrárias.


Capturas de tela

  1. docker compose run --rm v603
  2. docker compose run --rm v6041
  3. docker compose run --rm patched

Versão vulnerável: 6.0.3

exemplo de saída 603

Versão vulnerável: 6.0.4.1

exemplo de saída 6041

Versão corrigida: 6.3.3

exemplo de saída corrigida


Referências

  • Advisory de segurança do pac4j para JwtAuthenticator
  • Banco de dados de advisories do GitHub: CVE-2026-29000
  • Entrada no NVD: CVE-2026-29000
  • Relatório técnico da CodeAnt: PoC de bypass de autenticação por chave pública

Conclusão final

Este projeto demonstra três fatos centrais:

  1. tokens legítimos de linha de base são aceitos em todas as versões testadas
  2. claims forjadas controladas pelo atacante são aceitas em 6.0.3 e 6.0.4.1
  3. claims forjadas controladas pelo atacante são rejeitadas em 6.3.3

Esta é a evidência central vulnerável-versus-corrigida para esta CVE neste repositório.

Nas versões vulneráveis, o token forjado não é meramente analisado — ele produz um perfil autenticado com subject e roles controlados pelo atacante.

Baixar ferramenta