Agent memory isolation: a dot in a LangGraph store namespace let one tenant read, overwrite or delete another tenant's long-term memory (CVE-2026-115883)
LangGraph's Postgres and SQLite stores, often used for agents' long-term memory, saved a namespace as its labels joined with .. So ("tenant", "bob") and ("tenant.bob",) pointed to the same data. Only put rejected dots. get, search, delete, list_namespaces and batch calls did not.
- Impact: if untrusted input (a user ID, or a value an agent picks) chooses a namespace label, a caller could read, overwrite or delete another user's or tenant's stored memories.
- Fixed:
langgraph-checkpoint-postgres3.1.3 andlanggraph-checkpoint-sqlite3.1.2 (both needlanggraph-checkpoint4.3.0). The Agent Server rejects such labels from 0.15.5 / 0.16.2. LangSmith Cloud deployments get the fix on their next revision; self-hosted deployments need to upgrade.InMemoryStoreis not affected.
Lesson for any agent memory layer: build tenant keys from server-side identity, never from strings the model or user can shape, and check isolation on every read path, not just writes.
Sources: LangGraph advisory GHSA-6hmw-9432-67qq / CVE-2026-115883