Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-67644-LangGraph-3.0.1-SQLite-Checkpoint-SQL-Injection — Proof-of-concept exploit per CVE-2025-67644, una vulnerabilità di SQL injection in LangGraph SQLite Checkpoint. Dimostra l'iniezione SQL arbitraria tramite chiavi di filtro dei metadati non sanificate, consentendo l'esfiltrazione dei dati e il bypass dei filtri. | Kitploit
Strumenti/GitHubGitHub/mbanyamer/cve-2025-67644-langgraph-3.0.1-sqlite-checkpoint-sql-injection
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingPaper e RicercaApprendimento e FormazioneSicurezza dei Database
GitHubmbanyamer/cve-2025-67644-langgraph-3.0.1-sqlite-checkpoint-sql-injection

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

Proof-of-concept exploit per CVE-2025-67644, una vulnerabilità di SQL injection in LangGraph SQLite Checkpoint. Dimostra l'iniezione SQL arbitraria tramite chiavi di filtro dei metadati non sanificate, consentendo l'esfiltrazione dei dati e il bypass dei filtri.

Vedi Repository
136 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2025-67644 PoC – Iniezione SQL nel checkpoint SQLite di LangGraph

Author Role Country Platform Vulnerability CVE Status License

CVE-2025-67644 è una vulnerabilità di SQL Injection (CWE-89) nel pacchetto langgraph-checkpoint-sqlite (parte dell'ecosistema LangGraph / LangChain).
Consente a un attaccante di iniettare SQL arbitrario tramite chiavi di filtro dei metadati non sanificate passate ai metodi / di .

list()
alist()
SqliteSaver

Impatto: bypass completo dei filtri, divulgazione di tutti i record dei checkpoint (inclusi stato della conversazione potenzialmente sensibile, ID dei thread, metadati) e, in alcuni scenari di distribuzione, accesso più ampio al database.

Versioni interessate: < 3.0.1
Corretta in: ≥ 3.0.1
Punteggio CVSS: 7.3 (Alto) — AV:L / AC:L / PR:L / UI:N / S:C / C:H / I:L / A:N

Riepilogo della vulnerabilità

La logica interna _metadata_predicate() utilizzava un'interpolazione f-string non sicura delle chiavi del dizionario controllate dall'utente all'interno di un'espressione di estrazione JSON:

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

Un attaccante che può fornire chiavi arbitrarie (ad es. tramite input API) può chiudere prematuramente il percorso JSON e iniettare frammenti SQL, come ad esempio:

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

→ con conseguente clausola WHERE che risulta sempre vera → restituisce tutti i record.

Diagramma del flusso di attacco

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"]

(Questa versione evita le parentesi nel testo dei nodi dove possibile e usa le virgolette attorno alle etichette con caratteri speciali/punti per prevenire errori di parsing.)

Caratteristiche di questo PoC

  • Dimostrazione pulita e sincrona dell'exploit
  • Crea automaticamente dati dimostrativi se il database è vuoto
  • Opzioni CLI: --dump-all (mostra tutti i record), --threads-only (estrae solo gli ID dei thread)
  • Bellissimo banner ASCII + formattazione chiara dell'output

Requisiti

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

Utilizzo

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

Installazione e avvio rapido

  1. Installa la versione vulnerabile:

    root@kitploit:~
    pip install langgraph-checkpoint-sqlite==2.0.0
    
  2. Salva il codice dell'exploit come exploit.py

  3. Esegui su un database di checkpoint esistente o nuovo:

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

Rimedio / Mitigazione

  • Aggiorna immediatamente:

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

    (versione ≥ 3.0.1)

  • Non accettare chiavi di filtro dei metadati arbitrarie da fonti non attendibili (utenti, API, payload JSON, ecc.)

  • Nella versione ≥ 3.0.1 la libreria applica una regex rigorosa sulle chiavi: ^[a-zA-Z0-9_.-]+$

Avviso legale

Questo è un proof-of-concept rilasciato esclusivamente a scopo educativo e di ricerca sulla sicurezza.
Non utilizzare questo codice contro sistemi in produzione o qualsiasi target senza esplicita autorizzazione scritta.
L'autore non è responsabile per usi impropri o danni causati da questo codice.

Riferimenti

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

Solo divulgazione responsabile e ricerca.
Mohammed Idrees Banyamer
@banyamer_security

Scarica lo strumento