Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cve-2026-100671-poc — Verificador de prova de conceito apenas local para CVE-2026-100671, reproduzindo a divulgação e a reprodução de cookies de sessão do cache de páginas Twig do Grav contra alvos de loopback. | Kitploit
Ferramentas/GitHubGitHub/canhieu/cve-2026-100671-poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebVirtualização para SegurançaSegurança WebTestes de Penetração
GitHubcanhieu/cve-2026-100671-poc

cve-2026-100671-poc

Verificador de prova de conceito apenas local para CVE-2026-100671, reproduzindo a divulgação e a reprodução de cookies de sessão do cache de páginas Twig do Grav contra alvos de loopback.

Ver Repositório
6há 2 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-100671 — Divulgação de cookie de sessão via Twig no Grav

Verificador mínimo, apenas local, para a tomada de controle de sessão via content-Twig/page-cache do Grav, corrigida no Grav 2.0.25.

Avisos:

  • CVE-2026-100671
  • GHSA-pp89-h475-7gj6
  • Lançamento do Grav 2.0.25

Escopo

O exploit.py é deliberadamente restrito a alvos de loopback:

  • 127.0.0.1
  • ::1
  • localhost

Ele recusa hosts remotos, segue apenas redirecionamentos de loopback, usa clientes HTTP da biblioteca padrão do Python, aplica timeouts de requisição e nunca imprime bearer tokens, cookies ou corpos de resposta.

Use apenas contra uma instância do Grav que você possui ou está explicitamente autorizado a testar. O script cria uma página de prova pública no laboratório local. Remova essa página após o teste se o laboratório mantiver conteúdo entre execuções.

Cadeia de vulnerabilidade

  1. Um escritor de páginas com baixo privilégio publica conteúdo contendo Twig em sandbox.
  2. get_cookie() lê o cookie de sessão do administrador visitante no lado do servidor.
  3. O Grav armazena a saída da página pós-Twig em um cache sem identidade de sessão.
  4. Uma requisição não autenticada recebe o valor do cookie em cache.
  5. A reprodução desse valor contra a API local autentica como o administrador.

A conta de escrita de páginas precisa apenas do caminho de escrita de baixo privilégio documentado. Ela não precisa de api.pages.read, admin.* ou acesso de super-admin. O admin vítima só precisa visitar a página pública uma vez.

Versões afetadas

  • Grav 2.0.19 até 2.0.24: vulnerável com a configuração padrão de content-Twig fornecida.
  • Grav 2.0.0 até 2.0.18, e 1.7.x: afetado apenas quando o Twig de conteúdo foi explicitamente habilitado.
  • Grav 2.0.25: corrigido.

Requisitos do laboratório

Execute um laboratório local do Grav com:

  • plugin Grav API habilitado;
  • plugin Grav Login habilitado;
  • uma conta de escritor com baixo privilégio capaz de obter um token de API e criar páginas;
  • uma conta de administrador;
  • a rota da página alvo publicamente legível.

Este repositório de dois arquivos não provisiona Grav, PHP, plugins ou contas.

Execução

Defina as credenciais por meio de variáveis de ambiente para que nunca entrem no controle de versão:

export GRAV_BASE_URL=http://127.0.0.1:8080
export GRAV_WRITER_USERNAME=low
export GRAV_WRITER_PASSWORD='local-writer-password'
export GRAV_ADMIN_USERNAME=admin
export GRAV_ADMIN_PASSWORD='local-admin-password'

python3 exploit.py

A URL base deve permanecer em loopback. A rota padrão é aleatória. Uma rota fixa pode ser selecionada ao comparar execuções:

python3 exploit.py --route /cookie-proof-24

Resultado vulnerável esperado:

page_create_status=201
admin_login_status=200
victim_page_status=200
attacker_page_status=200
cached_victim_cookie_visible_to_attacker=yes
admin_cookie_value_match=yes
replayed_cookie_api_status=200
result=VULNERABLE

O comando sai com 0 quando o resultado esperado é reproduzido, 1 quando não é reproduzido, e 2 para um erro de configuração ou transporte.

Verificação da versão corrigida

Execute o mesmo comando contra o Grav 2.0.25:

python3 exploit.py --expect fixed

Comportamento corrigido esperado: nenhum valor de sessão visível ao atacante e nenhuma reprodução de sessão bem-sucedida. Um resultado corrigido limpo sai com 0 com --expect fixed.

Remediação

Atualize para o Grav 2.0.25 ou posterior. Para implantações mais antigas, o aviso lista estes controles temporários:

  • desabilitar o Twig de conteúdo com security.twig_content.process_enabled: false; ou
  • definir system.pages.never_cache_twig: true;
  • limpar os caches existentes do Grav;
  • rotacionar as sessões de administrador.

Não trate HttpOnly, Secure ou SameSite como uma correção: a leitura vulnerável do cookie ocorre no lado do servidor durante a renderização do Twig.

Divulgação

Reportado por canhieu. Este repositório é um auxílio de reprodutibilidade para o aviso já público, não um scanner remoto nem uma ferramenta de coleta de credenciais.

Baixar ferramenta