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-2025-67644-LangGraph-3.0.1-SQLite-Checkpoint-SQL-Injection — Prova de conceito de exploit para CVE-2025-67644, uma vulnerabilidade de injeção SQL no LangGraph SQLite Checkpoint. Demonstra injeção SQL arbitrária por meio de chaves de filtro de metadados não sanitizadas, possibilitando exfiltração de dados e bypass de filtro. | Kitploit
Ferramentas/GitHubGitHub/mbanyamer/cve-2025-67644-langgraph-3.0.1-sqlite-checkpoint-sql-injection
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoPapers e PesquisaAprendizado e EducaçãoSegurança de Banco de Dados
GitHubmbanyamer/cve-2025-67644-langgraph-3.0.1-sqlite-checkpoint-sql-injection

CVE-2025-67644-LangGraph-3.0.1-SQLite-Checkpoint-SQL-Injection

Prova de conceito de exploit para CVE-2025-67644, uma vulnerabilidade de injeção SQL no LangGraph SQLite Checkpoint. Demonstra injeção SQL arbitrária por meio de chaves de filtro de metadados não sanitizadas, possibilitando exfiltração de dados e bypass de filtro.

Ver Repositório
13há 6 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-2025-67644 PoC – Injeção SQL no Checkpoint SQLite do LangGraph

Author Role Country Platform Vulnerability CVE Status License

CVE-2025-67644 é uma vulnerabilidade de Injeção SQL (CWE-89) no pacote langgraph-checkpoint-sqlite (parte do ecossistema LangGraph / LangChain).
Permite que um atacante injete SQL arbitrário através de chaves de filtro de metadados não sanitizadas, passadas para os métodos list() / de .

alist()
SqliteSaver

Impacto: Bypass completo de filtros, vazamento de todos os registros de checkpoint (incluindo estado potencialmente sensível de conversas, IDs de thread, metadados) e, em alguns cenários de implantação — acesso mais amplo ao banco de dados.

Versões afetadas: < 3.0.1
Corrigido em: ≥ 3.0.1
Pontuação CVSS: 7.3 (Alta) — AV:L / AC:L / PR:L / UI:N / S:C / C:H / I:L / A:N

Resumo da Vulnerabilidade

A lógica interna _metadata_predicate() usava interpolação insegura de f-string em chaves de dicionário controladas pelo usuário dentro de uma expressão de extração JSON:

root@kitploit:~
f"json_extract(CAST(metadata AS TEXT), '$.{query_key}')"

Um atacante que pode fornecer chaves arbitrárias (por exemplo, via entrada de API) pode fechar o caminho JSON precocemente e injetar fragmentos SQL, como:

root@kitploit:~
{"env') OR '1'='1": "anything"}

→ resultando em uma cláusula WHERE que sempre é avaliada como verdadeira → retorna todos os registros.

Diagrama do Fluxo de Ataque

root@kitploit:~
flowchart TD
    A["User / API Client"] -->|"Sends malicious filter dict"| B["Application using langgraph-checkpoint-sqlite"]
    B -->|"Passes filter=..."| C["SqliteSaver.list method"]
    C -->|"Unsafe key interpolation"| D["Metadata predicate logic"]
    D -->|"Builds injectable SQL"| E["SQLite Engine"]
    E -->|"Returns ALL checkpoints / sensitive data"| F[Attacker]
    F -->|"Data exfiltration / authorization bypass"| G["Impact achieved"]

(Esta versão evita parênteses no texto dos nós quando possível e usa aspas ao redor de rótulos com caracteres especiais/pontos para prevenir erros de análise.)

Funcionalidades deste PoC

  • Demonstração limpa e síncrona do exploit
  • Cria automaticamente dados de demonstração se o banco estiver vazio
  • Opções de linha de comando: --dump-all (mostrar registros completos), --threads-only (extrair apenas thread_ids)
  • Banner ASCII bonito + formatação clara de saída

Requisitos

root@kitploit:~
pip install langgraph-checkpoint-sqlite"<3.0.1"   # ex.: ==2.0.0

Uso

root@kitploit:~
# Verificação básica (apenas contagem)
python3 exploit.py checkpoints.db

# Despejar detalhes completos do checkpoint
python3 exploit.py checkpoints.db --dump-all

# Extrair apenas thread_ids (útil para enumeração)
python3 exploit.py checkpoints.db --threads-only --dump-all

# Testar com banco em memória (rápido e volátil)
python3 exploit.py ":memory:" --dump-all

Instalação & Início Rápido

  1. Instale a versão vulnerável:

    root@kitploit:~
    pip install langgraph-checkpoint-sqlite==2.0.0
    
  2. Salve o código do exploit como exploit.py

  3. Execute contra um banco de dados de checkpoint existente ou novo:

    root@kitploit:~
    python3 exploit.py checkpoints.db --dump-all
    

Remediação / Mitigação

  • Atualize imediatamente:

    root@kitploit:~
    pip install --upgrade langgraph-checkpoint-sqlite
    

    (versão ≥ 3.0.1)

  • Não aceite chaves de filtro de metadados arbitrárias de fontes não confiáveis (usuários, APIs, payloads JSON, etc.)

  • Na versão ≥ 3.0.1 a biblioteca impõe uma regex rigorosa nas chaves: ^[a-zA-Z0-9_.-]+$

Aviso Legal

Esta é uma prova de conceito divulgada apenas para fins educacionais e de pesquisa em segurança.
Não utilize este código contra sistemas de produção ou qualquer alvo sem permissão explícita por escrito.
O autor não é responsável pelo mau uso ou danos causados por este código.

Referências

  • GitHub Security Advisory GHSA-9rwj-6rc7-p77c
  • Commit da Correção
  • Entrada NVD – CVE-2025-67644

Divulgação responsável e pesquisa apenas.
Mohammed Idrees Banyamer
@banyamer_security

Baixar ferramenta