Impact
The vulnerability resides in the serialization logic of LangGraph’s cache layer. When BaseCache falls back from msgpack to pickle for serialization, an attacker who can write arbitrary bytes to the cache can trigger deserialization via pickle.loads during a later read. This enables execution of arbitrary code in the process that owns the LangGraph instance. The failure to default to a safe serialization mechanism means that any untrusted cache entry becomes a vector for code execution.
Affected Systems
The issue affects the langgraph-checkpoint package from langchain-ai, specifically all releases older than 4.0.0. Applications must have explicitly enabled a cache backend that inherits from BaseCache and have at least one node configured to cache via CachePolicy. Caching is not enabled by default, so normal usage without cache configuration is not impacted.
Risk and Exploitability
The CVSS base score of 6.6 reflects a moderate severity, while an EPSS score of less than 1% suggests a very low probability of exploitation. The vulnerability is not listed in CISA’s KEV catalog. Exploitation requires write access to the cache backend, making it a post‑compromise or post‑access escalation vector. If an attacker controls a network‑accessible Redis instance without authentication or can modify local cache files such as SQLite, they can inject malicious payloads, leading to remote code execution on the LangGraph host.
OpenCVE Enrichment
Github GHSA