CVE-2026-115883

LangGraph: Namespace labels containing `.` reach other namespaces in Postgres and SQLite stores

Published Oct 23, 2026 CVSS 4.0 · 6 Medium EPSS < 1% KEV · Not listed
Description
LangGraph checkpoint savers provide Postgres- and SQLite-backed state persistence for LangGraph workflows and agents. Prior to langgraph-checkpoint-postgres 3.1.3 and langgraph-checkpoint-sqlite 3.1.2, PostgresStore, AsyncPostgresStore, SqliteStore, and AsyncSqliteStore flatten namespace labels with ".".join(namespace), while BaseStore validates labels only for put and aput. Unvalidated dotted labels passed through get, search, delete, list_namespaces, their asynchronous equivalents, or direct batch and abatch operations can resolve to another tenant's stored namespace, allowing cross-namespace reads, overwrites, or deletion. InMemoryStore is not affected because it compares namespace tuples. This issue is fixed in langgraph-checkpoint-postgres 3.1.3 and langgraph-checkpoint-sqlite 3.1.2.

Analysis

AI-generated

Technical impact

LangGraph checkpoint savers for Postgres and SQLite flatten namespace labels by joining tuple elements with a period and validate labels only for put operations. Unvalidated dotted labels supplied to get, search, delete, list_namespaces or batch operations can resolve to another tenant’s stored namespace, letting an attacker read, overwrite or delete data belonging to other namespaces, thereby compromising confidentiality and integrity. The in‑memory store is unaffected because it compares tuples directly.

Affected Systems

The vulnerability affects langchain‑ai LangGraph and its checkpoint stores for Postgres prior to 3.1.3 and for SQLite prior to 3.1.2. Any deployment of LangGraph using these libraries without the specified minimum versions is considered impacted.

Risk and Exploitability

The CVSS score of 6 indicates moderate severity, and the EPSS score is not available, suggesting no current exploitation data. The vulnerability is not listed in the CISA KEV catalog. Exploitation requires the ability to supply an arbitrary namespace string to the store operations, which is typically possible through the public API of LangGraph or any application that allows dynamic namespace configuration. The attack could be performed locally within the same process or remotely if the application exposes the vulnerable API to untrusted clients, resulting in cross‑namespace data compromise.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to langgraph-checkpoint-postgres 3.1.3 or newer.
  • Upgrade to langgraph-checkpoint-sqlite 3.1.2 or newer.
  • Validate or sanitize all namespace labels in application code to reject dotted patterns unless explicitly intended.

Generated by OpenCVE AI on October 23, 2026 at 22:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-6hmw-9432-67qq LangGraph: Namespace labels containing `.` reach other namespaces in Postgres and SQLite stores
History
Type Values Removed Values Added
First Time appeared Langchain-ai
Langchain-ai langgraph
Langchain-ai langgraph-checkpoint-postgres
Langchain-ai langgraph-checkpoint-sqlite
Vendors & Products Langchain-ai
Langchain-ai langgraph
Langchain-ai langgraph-checkpoint-postgres
Langchain-ai langgraph-checkpoint-sqlite
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description LangGraph checkpoint savers provide Postgres- and SQLite-backed state persistence for LangGraph workflows and agents. Prior to langgraph-checkpoint-postgres 3.1.3 and langgraph-checkpoint-sqlite 3.1.2, PostgresStore, AsyncPostgresStore, SqliteStore, and AsyncSqliteStore flatten namespace labels with ".".join(namespace), while BaseStore validates labels only for put and aput. Unvalidated dotted labels passed through get, search, delete, list_namespaces, their asynchronous equivalents, or direct batch and abatch operations can resolve to another tenant's stored namespace, allowing cross-namespace reads, overwrites, or deletion. InMemoryStore is not affected because it compares namespace tuples. This issue is fixed in langgraph-checkpoint-postgres 3.1.3 and langgraph-checkpoint-sqlite 3.1.2.
Title LangGraph: Namespace labels containing `.` reach other namespaces in Postgres and SQLite stores
Weaknesses CWE-20
CWE-863
References
Metrics cvssV4_0

{'score': 6, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N'}

Weaknesses
  • CWE-20

    Improper Input Validation

  • CWE-863

    Incorrect Authorization

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Oct 26, 2026, 5:42 PM
Reserved
Oct 23, 2026, 7:37 PM
Status
Awaiting Analysis
Published
Oct 23, 2026, 10:16 PM
Modified
Oct 26, 2026, 6:34 PM