Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-67644-LangGraph-3.0.1-SQLite-Checkpoint-SQL-Injection — Exploit de preuve de concept pour CVE-2025-67644, une vulnérabilité d'injection SQL dans LangGraph SQLite Checkpoint. Démontre une injection SQL arbitraire via des clés de filtre de métadonnées non assainies, permettant l'exfiltration de données et le contournement de filtres. | Kitploit
Outils/GitHubGitHub/mbanyamer/cve-2025-67644-langgraph-3.0.1-sqlite-checkpoint-sql-injection
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionArticles et RechercheApprentissage et ÉducationSécurité des Bases de Données
GitHub
mbanyamer/cve-2025-67644-langgraph-3.0.1-sqlite-checkpoint-sql-injection

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

Exploit de preuve de concept pour CVE-2025-67644, une vulnérabilité d'injection SQL dans LangGraph SQLite Checkpoint. Démontre une injection SQL arbitraire via des clés de filtre de métadonnées non assainies, permettant l'exfiltration de données et le contournement de filtres.

Voir le dépôt
110il y a 7 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2025-67644 PoC – Injection SQL du checkpoint SQLite de LangGraph

Author Role Country Platform Vulnerability CVE Status License

CVE-2025-67644 est une vulnérabilité d'injection SQL (CWE-89) dans le paquet langgraph-checkpoint-sqlite (faisant partie de l'écosystème LangGraph / LangChain).
Elle permet à un attaquant d'injecter du SQL arbitraire via des clés de filtre de métadonnées non assainies transmises aux méthodes list() / alist() de SqliteSaver.

Impact : Contournement complet des filtres, fuite de tous les enregistrements de checkpoints (y compris l'état de conversation potentiellement sensible, les identifiants de threads, les métadonnées), et dans certains scénarios de déploiement — un accès plus large à la base de données.

Versions affectées : < 3.0.1
Corrigé dans : ≥ 3.0.1
Score CVSS : 7.3 (Élevé) — AV:L / AC:L / PR:L / UI:N / S:C / C:H / I:L / A:N

Résumé de la vulnérabilité

La logique interne _metadata_predicate() utilisait une interpolation f-string non sécurisée de clés de dictionnaire contrôlées par l'utilisateur dans une expression d'extraction JSON :

f"json_extract(CAST(metadata AS TEXT), '$.{query_key}')"

Un attaquant capable de fournir des clés arbitraires (par exemple via une entrée API) peut fermer prématurément le chemin JSON et injecter des fragments SQL, tels que :

{"env') OR '1'='1": "anything"}

→ ce qui produit une clause WHERE toujours évaluée à vrai → renvoie tous les enregistrements.

Schéma du flux d'attaque

flowchart TD
    A["Utilisateur / Client API"] -->|"Envoie un dictionnaire de filtre malveillant"| B["Application utilisant langgraph-checkpoint-sqlite"]
    B -->|"Transmet filter=..."| C["Méthode SqliteSaver.list"]
    C -->|"Interpolation non sécurisée de clés"| D["Logique de prédicat de métadonnées"]
    D -->|"Construit du SQL injectable"| E["Moteur SQLite"]
    E -->|"Renvoie TOUS les checkpoints / données sensibles"| F[Attaquant]
    F -->|"Exfiltration de données / contournement d'autorisation"| G["Impact obtenu"]

(Cette version évite les parenthèses dans le texte des nœuds lorsque c'est possible et utilise des guillemets autour des libellés contenant des caractères spéciaux/points pour éviter les erreurs d'analyse.)

Fonctionnalités de ce PoC

  • Démonstration d'exploit synchrone et propre
  • Crée automatiquement des données de démonstration si la base de données est vide
  • Options CLI : --dump-all (afficher tous les enregistrements), --threads-only (extraire uniquement les thread_ids)
  • Bannière ASCII soignée + formatage de sortie clair

Prérequis

pip install langgraph-checkpoint-sqlite"<3.0.1"   # e.g. ==2.0.0

Utilisation

# 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

Installation et démarrage rapide

  1. Installez la version vulnérable :

    pip install langgraph-checkpoint-sqlite==2.0.0
    
  2. Enregistrez le code de l'exploit sous le nom exploit.py

  3. Exécutez-le contre une base de données de checkpoints existante ou nouvelle :

    python3 exploit.py checkpoints.db --dump-all
    

Remédiation / Atténuation

  • Mettez à jour immédiatement :

    pip install --upgrade langgraph-checkpoint-sqlite
    

    (version ≥ 3.0.1)

  • N'acceptez pas de clés de filtre de métadonnées arbitraires provenant de sources non fiables (utilisateurs, API, payloads JSON, etc.)

  • Dans ≥ 3.0.1, la bibliothèque impose une regex stricte sur les clés : ^[a-zA-Z0-9_.-]+$

Avis légal

Ceci est une preuve de concept publiée à des fins uniquement éducatives et de recherche en sécurité.
N'utilisez pas ce code contre des systèmes de production ou toute cible sans autorisation écrite explicite.
L'auteur n'est pas responsable de l'utilisation abusive ou des dommages causés par ce code.

Références

  • GitHub Security Advisory GHSA-9rwj-6rc7-p77c
  • Commit du correctif
  • Entrée NVD – CVE-2025-67644

Divulgation responsable et recherche uniquement.
Mohammed Idrees Banyamer
@banyamer_security

Télécharger l’outil