Skip to main content

LangGraph SDK EUVDEUVD-2026-112474

| CVE-2026-118667 MEDIUM
Path Traversal (CWE-22)
2026-10-28 GitHub_M GHSA-3fx2-cqw9-xr3c
4.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Supply crafted thread_id/assistant_id to app
  2. Delivery
    App forwards value into v3 stream helper
  3. Exploit
    Relative segments normalized into new path
  4. Execution
    SDK sends authenticated GET with its headers
  5. Persist
    Server returns other readable resource
  6. Impact
    Disclosed data returned to attacker

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires all of: (1) use of langgraph-sdk 0.4.0-0.4.5 (the v3 stream module does not exist in 0.3.x), or langgraph 1.2.3-1.2.13 using RemoteGraph v3 streaming against such an SDK; (2) the application must pass attacker-controlled text directly as a streaming thread_id or assistant_id (for RemoteGraph, via config['configurable']['thread_id']); and (3) the flaw is reached through the v3 get_tree (assistant_id) or _fetch_state/_run_lifecycle_watcher (thread_id) helpers. Limiting factors: impact is read-only (GET, no write), confined to paths on the already-configured and authenticated server; assistant_id controls only the path while thread_id can also influence the query string; the hosted LangGraph Platform is not exposed; and applications that do not forward untrusted identifiers are unaffected.

Impact

This is a genuine but modest-severity path-handling flaw, not an urgent priority. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N, base 4.3) and CWE-22 are consistent with the advisory: unencoded thread_id/assistant_id values interpolated into authenticated GET paths allow relative segments to redirect a request to another readable path on the same configured server, yielding limited confidentiality impact only (C:L, I:N, A:N - GET-only, no write primitive per the GHSA). No KEV listing, no EPSS score, and no exploit reference were supplied - the only code links are the fix PR/commit and the advisory, so this is no public exploit identified at time of analysis. The vuln.today decision label is this_month, aligning with the low-to-medium signals rather than emergency. The key caveat is PR:L: the 'privilege' here is really the SDK client's own configured authentication headers, while the triggering input (the malicious identifier) comes from an application-exposed attacker; the flaw only manifests if the application passes attacker-controlled text as a streaming thread_id or assistant_id, so real-world exposure depends on application design, not solely on the CVSS metrics. The managed LangGraph Platform is explicitly not exposed.

Exploit ScenarioDerived

An application built on langgraph/langgraph-sdk uses RemoteGraph v3 streaming and forwards untrusted user input as a thread_id or assistant_id. An attacker submits a value such as '../assistants/a/graph#' so HTTP path normalization collapses the dot-segments, redirecting the SDK's authenticated GET to a different readable endpoint (via thread_id the attacker can also control the query string, e.g. /store/items?namespace=...&key=...) and causing that response to be returned to the application. No public exploit code was supplied; only the vendor fix and tests are referenced.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 28, 2026

Path traversal in the LangGraph Python SDK (langgraph-sdk 0.4.0 through 0.4.5, and langgraph 1.2.3 through 1.2.13 via RemoteGraph v3 streaming) lets an attacker who controls a streaming thread_id or assistant_id value redirect the SDK's authenticated GET requests to a different readable path on the same configured LangGraph server, with thread_id also able to inject query parameters such as /store/items?namespace=...&key=... . Exploitation requires the application to pass attacker-controlled text directly as those identifiers; requests are GET-only, so the impact is limited to disclosure of another readable path's response (CVSS 4.3, PR:L - authenticated), and the hosted LangGraph Platform is not exposed. The vendor has released fixed versions langgraph-sdk 0.4.6 and langgraph 1.2.14, and no public exploit code was identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade langgraph-sdk to 0.4.6 or later, which percent-encodes assistant_id in get_tree and thread_id in _fetch_state via _quote_path_param in both the synchronous and asynchronous stream modules (commit d89c7e100ec6fc1512544d23b0a7c5169699ef3e, PR 9213, release tag sdk==0.4.6). Applications using RemoteGraph must additionally upgrade langgraph to 1.2.14 or later, since that release pins langgraph-sdk>=0.4.6. Advisory and release references: https://github.com/langchain-ai/langgraph/security/advisories/GHSA-3fx2-cqw9-xr3c, https://github.com/langchain-ai/langgraph/releases/tag/1.2.14, https://github.com/langchain-ai/langgraph/releases/tag/sdk%3D%3D0.4.6. Deployments that cannot upgrade immediately should note that exposure only exists where an application forwards untrusted input as a streaming thread_id or assistant_id (for RemoteGraph, via config['configurable']['thread_id']); constraining those values to server-issued identifiers removes the attack path, at the cost of breaking any workflow that legitimately accepts client-supplied identifiers. No exploitation has been reported against the LangGraph Platform, which is not affected.

Affected VersionsENISA

langgraph 1.2.3, < 1.2.14
langgraph-sdk 0.4.0, < 0.4.6

Affected Packages

pypi langgraph fix: 1.2.14
pypi langgraph-sdk fix: 0.4.6

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is CWE-22 (improper limitation of a pathname to a restricted directory) manifesting as missing percent-encoding in the SDK's v3 streaming client. Four call sites - the synchronous and asynchronous implementations of get_tree and _fetch_state (used by _run_lifecycle_watcher) - build request URLs by f-string interpolation of self._owner.assistant_id and self.thread_id instead of routing them through the SDK's existing _quote_path_param helper. Because httpx normalizes dot-segments and treats '#' as a fragment delimiter, a value such as '../assistants/a/graph#' collapses the intended '/threads/{id}/state' path into a different path, while the client's authentication headers are still attached to the outgoing request against the already-configured, trusted base URL. The v3 stream module first shipped in the 0.4.0 SDK line, so 0.3.x is unaffected; langgraph's RemoteGraph v3 streaming passes config['configurable']['thread_id'] into threads.stream(...) and its dependency range permits vulnerable SDK versions. assistant_id only influences the path, while thread_id also influences the query string, enabling targeted reads of endpoints like /store/items. The trigger is confirmed by the upstream regression tests, which assert that '../assistants/a/graph#' stays a single encoded segment.

Know when Langgraph gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 4.3 MEDIUM

Network GET redirect using the SDK client's own authentication (PR:L), easily triggered (AC:L), yielding only limited read access to other paths on the same server (C:L, I:N, A:N, scope unchanged).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Oct 28, 2026 - 21:19 EUVD

DescriptionCVE.org

LangGraph Python SDK is used to connect to running LangGraph API servers, manage assistants, threads and stream runs from Python applications. From langgraph-sdk 0.4.0 until 0.4.6, and from langgraph 1.2.3 until 1.2.14 when RemoteGraph v3 streaming uses an affected langgraph-sdk version, the synchronous and asynchronous v3 stream get_tree and _fetch_state helpers interpolate caller-controlled assistant_id and thread_id values into authenticated GET request paths without using _quote_path_param. Relative path segments can therefore be normalized into another readable path on the configured server while retaining authentication headers. This issue is fixed in langgraph-sdk 0.4.6 and langgraph 1.2.14.

Threat Intelligence Overview

Prevalence
Medium
popular LLM agent framework, but affected v3 RemoteGraph streaming path is narrower
Threat Intel
1
1 source
Social Media
2
Sightings
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

22
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +22
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy