CVE-2025-8709: langgraph-checkpoint-sqlite: SQL Injection exposes database

GHSA-4h97-wpxp-3757 HIGH CISA: TRACK*
Published October 26, 2025
CISO Take

If your team uses LangGraph with SQLite checkpointing (langgraph-checkpoint-sqlite ≤2.0.10), upgrade to 2.0.11 immediately — the filter operators are vulnerable to SQL injection that can expose every API key, credential, and document in your checkpoint store. Assume any application-layer query filtering that reaches LangGraph's SQLite store is a potential injection point, audit what sensitive data your agents are persisting in state, and rotate any credentials that may have passed through the checkpoint store. This is a straightforward patch with no architectural changes required.

Risk Assessment

High severity (CVSS 7.3) with low current exploitation probability (EPSS 0.00036, not in KEV). The local attack vector (AV:L) limits direct remote exploitation, but many LangGraph-based applications expose filter parameters via API endpoints, effectively widening the attack surface to any network-accessible query interface. The Changed Scope (S:C) and High Confidentiality impact (C:H) are the critical factors: a successful exploit bypasses all application-level access controls and potentially exposes the entire checkpoint store. Organizations running LangGraph in multi-tenant or SaaS contexts face the highest risk.

Affected Systems

Package Ecosystem Vulnerable Range Patched
langgraph-checkpoint-sqlite pip <= 2.0.10 2.0.11
31.1K 3.1K dependents Pushed 6d ago 100% patched ~3d to patch Full package profile →

Do you use langgraph-checkpoint-sqlite? You're affected.

Severity & Risk

CVSS 3.1
7.3 / 10
EPSS
0.0%
chance of exploitation in 30 days
Higher than 4% of all CVEs
Exploitation Status
Exploit Available
Exploitation: MEDIUM
Sophistication
Trivial
Exploitation Confidence
medium
CISA SSVC: Public PoC
Composite signal derived from CISA KEV, CISA SSVC, EPSS, trickest/cve, and Nuclei templates.

Attack Surface

AV AC PR UI S C I A
AV Local
AC Low
PR Low
UI None
S Changed
C High
I Low
A None

Recommended Action

6 steps
  1. PATCH

    Upgrade langgraph-checkpoint-sqlite to ≥2.0.11 immediately. Verify: pip show langgraph-checkpoint-sqlite | grep Version.

  2. AUDIT

    Inventory all services using the vulnerable version — scan requirements.txt, pyproject.toml, and lock files across your AI stack.

  3. ROTATE

    Treat any API keys, tokens, or credentials ever stored in LangGraph SQLite checkpoints as potentially compromised; rotate them proactively.

  4. HARDEN

    Never store raw credentials in agent state or checkpoints; reference secrets via vault integrations (e.g., AWS Secrets Manager, HashiCorp Vault).

  5. DETECT

    Review application logs for filter queries containing SQL metacharacters (single quotes, semicolons, UNION, OR 1=1 patterns) against LangGraph endpoints.

  6. WORKAROUND (if patching is blocked): Validate and allowlist filter operator values at the application layer before they reach LangGraph store methods.

CISA SSVC Assessment

Decision Track*
Exploitation poc
Automatable No
Technical Impact partial

Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.

Classification

Compliance Impact

This CVE is relevant to:

EU AI Act
Art.9 - Risk Management System
ISO 42001
A.6.2 - AI system lifecycle A.8.2 - AI system security
NIST AI RMF
MANAGE-2.2 - Mechanisms are in place to inventory AI systems and their components
OWASP LLM Top 10
LLM02 - Sensitive Information Disclosure LLM03 - Supply Chain Vulnerabilities

Frequently Asked Questions

What is CVE-2025-8709?

If your team uses LangGraph with SQLite checkpointing (langgraph-checkpoint-sqlite ≤2.0.10), upgrade to 2.0.11 immediately — the filter operators are vulnerable to SQL injection that can expose every API key, credential, and document in your checkpoint store. Assume any application-layer query filtering that reaches LangGraph's SQLite store is a potential injection point, audit what sensitive data your agents are persisting in state, and rotate any credentials that may have passed through the checkpoint store. This is a straightforward patch with no architectural changes required.

Is CVE-2025-8709 actively exploited?

No confirmed active exploitation of CVE-2025-8709 has been reported, but organizations should still patch proactively.

How to fix CVE-2025-8709?

1. PATCH: Upgrade langgraph-checkpoint-sqlite to ≥2.0.11 immediately. Verify: pip show langgraph-checkpoint-sqlite | grep Version. 2. AUDIT: Inventory all services using the vulnerable version — scan requirements.txt, pyproject.toml, and lock files across your AI stack. 3. ROTATE: Treat any API keys, tokens, or credentials ever stored in LangGraph SQLite checkpoints as potentially compromised; rotate them proactively. 4. HARDEN: Never store raw credentials in agent state or checkpoints; reference secrets via vault integrations (e.g., AWS Secrets Manager, HashiCorp Vault). 5. DETECT: Review application logs for filter queries containing SQL metacharacters (single quotes, semicolons, UNION, OR 1=1 patterns) against LangGraph endpoints. 6. WORKAROUND (if patching is blocked): Validate and allowlist filter operator values at the application layer before they reach LangGraph store methods.

What systems are affected by CVE-2025-8709?

This vulnerability affects the following AI/ML architecture patterns: agent frameworks, RAG pipelines, multi-agent orchestration, stateful AI workflows.

What is the CVSS score for CVE-2025-8709?

CVE-2025-8709 has a CVSS v3.1 base score of 7.3 (HIGH). The EPSS exploitation probability is 0.02%.

Technical Details

NVD Description

A SQL injection vulnerability exists in the langchain-ai/langchain repository, specifically in the LangGraph's SQLite store implementation. The affected version is langgraph-checkpoint-sqlite 2.0.10. The vulnerability arises from improper handling of filter operators ($eq, $ne, $gt, $lt, $gte, $lte) where direct string concatenation is used without proper parameterization. This allows attackers to inject arbitrary SQL, leading to unauthorized access to all documents, data exfiltration of sensitive fields such as passwords and API keys, and a complete bypass of application-level security filters.

Exploitation Scenario

An attacker identifies an application built on LangGraph that exposes a checkpoint retrieval endpoint accepting metadata filter parameters (e.g., GET /api/history?filter[$eq]=value). Instead of a legitimate value, they inject a SQL payload such as ' OR '1'='1' --. The unparameterized string concatenation in the SQLite store executes the query returning all checkpoint records, defeating user-scoped isolation entirely. For targeted credential exfiltration, the attacker chains UNION SELECT statements to extract specific fields — API keys, session tokens, or passwords stored by the agent during prior tool calls — then exfiltrates them out of band. The attacker then uses harvested API keys to pivot into integrated services (LLM providers, databases, SaaS tools) the agent had access to, achieving lateral movement beyond the original LangGraph deployment.

CVSS Vector

CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N

Timeline

Published
October 26, 2025
Last Modified
October 28, 2025
First Seen
October 26, 2025

Related Vulnerabilities