Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-67644-LangGraph-3.0.1-SQLite-Checkpoint-SQL-Injection — Exploit de prueba de concepto para CVE-2025-67644, una vulnerabilidad de inyección SQL en LangGraph SQLite Checkpoint. Demuestra inyección SQL arbitraria a través de claves de filtro de metadatos no sanitizadas, permitiendo la exfiltración de datos y la evasión de filtros. | Kitploit
Herramientas/GitHubGitHub/mbanyamer/cve-2025-67644-langgraph-3.0.1-sqlite-checkpoint-sql-injection
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónPapers e InvestigaciónAprendizaje y EducaciónSeguridad de Bases de Datos
GitHubmbanyamer/cve-2025-67644-langgraph-3.0.1-sqlite-checkpoint-sql-injection

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

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

Exploit de prueba de concepto para CVE-2025-67644, una vulnerabilidad de inyección SQL en LangGraph SQLite Checkpoint. Demuestra inyección SQL arbitraria a través de claves de filtro de metadatos no sanitizadas, permitiendo la exfiltración de datos y la evasión de filtros.

Ver Repositorio
1hace 5 mesesAún no revisado

CVE-2025-67644 PoC – Inyección SQL en LangGraph SQLite Checkpoint

Author Role Country Platform Vulnerability CVE Status License

CVE-2025-67644 es una vulnerabilidad de inyección SQL (CWE-89) en el paquete langgraph-checkpoint-sqlite (parte del ecosistema LangGraph / LangChain).
Permite a un atacante inyectar SQL arbitrario a través de claves de filtro de metadatos no sanitizadas pasadas a los métodos list() / alist() de SqliteSaver.

Impacto: Bypass completo de filtros, fuga de todos los registros de checkpoint (incluyendo posiblemente estado de conversación sensible, IDs de hilo, metadatos) y, en algunos escenarios de implementación, acceso más amplio a la base de datos.

Versiones afectadas: < 3.0.1
Corregido en: ≥ 3.0.1
Puntuación CVSS: 7.3 (Alta) — AV:L / AC:L / PR:L / UI:N / S:C / C:H / I:L / A:N

Resumen de la vulnerabilidad

La lógica interna _metadata_predicate() utilizaba interpolación insegura de cadenas f con claves de diccionario controladas por el usuario dentro de una expresión de extracción JSON:

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

Un atacante que pueda proporcionar claves arbitrarias (por ejemplo, a través de entrada API) puede cerrar la ruta JSON antes de tiempo e inyectar fragmentos SQL, como:

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

→ resultando en una cláusula WHERE que siempre se evalúa como verdadera → devuelve todos los registros.

Diagrama de flujo del 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 versión evita paréntesis en el texto de los nodos cuando es posible y usa comillas alrededor de etiquetas con caracteres especiales/puntos para prevenir errores de análisis.)

Características de este PoC

  • Demostración de exploit síncrono limpia
  • Crea automáticamente datos de demostración si la base de datos está vacía
  • Opciones de CLI: --dump-all (mostrar registros completos), --threads-only (extraer solo thread_ids)
  • Bonito banner ASCII + formato de salida claro

Requisitos

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

Uso

root@kitploit:~
# Basic check (count only)
python3 exploit.py checkpoints.db

# Dump full checkpoint details
python3 exploit.py checkpoints.db --dump-all

# Extract thread_ids only (useful for enumeration)
python3 exploit.py checkpoints.db --threads-only --dump-all

# Test against in-memory database (quick & volatile)
python3 exploit.py ":memory:" --dump-all

Instalación e inicio rápido

  1. Instalar la versión vulnerable:

    root@kitploit:~
    pip install langgraph-checkpoint-sqlite==2.0.0
    
  2. Guardar el código del exploit como exploit.py

  3. Ejecutar contra una base de datos de checkpoint existente o nueva:

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

Remedio / Mitigación

  • Actualizar inmediatamente:

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

    (versión ≥ 3.0.1)

  • No aceptar claves de filtro de metadatos arbitrarias de fuentes no confiables (usuarios, APIs, cargas JSON, etc.)

  • En ≥ 3.0.1 la librería aplica una regex estricta en las claves: ^[a-zA-Z0-9_.-]+$

Aviso legal

Esto es una prueba de concepto publicada solo con fines educativos y de investigación de seguridad.
No utilice este código contra sistemas en producción o cualquier objetivo sin permiso explícito por escrito.
El autor no es responsable por el mal uso o daños causados por este código.

Referencias

  • GitHub Security Advisory GHSA-9rwj-6rc7-p77c
  • Fix Commit
  • NVD Entry – CVE-2025-67644

Divulgación responsable e investigación únicamente.
Mohammed Idrees Banyamer
@banyamer_security

Descargar herramienta