LangGraph JavaScript custom authentication may permit cross-user Store access
Impact
LangGraph deployments using JavaScript or TypeScript custom authentication may fail to apply Store authorization changes returned by an authorization handler. In affected deployments, an authenticated user may be able to access Store data outside their authorized namespace.
Source excerpt · OSVThe attack does not require administrator privileges, user interaction, a race condition, or the bypass of another mitigation.
Affected packages
Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.
| Affected range | Recorded fix |
|---|---|
| From 0.1.2 before 0.15.0Ecosystem versions | 0.15.0 |
Version evidence: OSV · GHSA-4hm6-w6qq-w73v
View original version evidence (508 explicit versions)
Affected products
Vendor version evidence. Product records are separate from automatic dependency matching.
langchain-ai · GitHub_M
langgraph-api
1 range
langchain-ai · GitHub_M
langgraph-api
Compare with this publisher’s ranges. This does not inspect your installation.
affected
>= 0.1.2, < 0.15.0
Other versions: unknown
Original source description
Summary
LangGraph deployments using JavaScript or TypeScript custom authentication may fail to apply Store authorization changes returned by an authorization handler. In affected deployments, an authenticated user may be able to access Store data outside their authorized namespace.
Required conditions
A deployment is affected only when all of the following conditions apply:
- It uses an affected
langgraph-apiversion. - It runs JavaScript or TypeScript custom authentication.
- Its Store authorization handler relies on rewriting the requested namespace to restrict each user to their own data.
- The attacker can authenticate as an ordinary user.
- Multiple users' data is stored through the affected authorization path.
Python custom authentication handlers are not affected. JavaScript or TypeScript handlers that reject unauthorized namespace requests instead of rewriting them are also not affected.
The attack does not require administrator privileges, user interaction, a race condition, or the bypass of another mitigation.
Impact
An authenticated user may be able to read, overwrite, search, or delete Store data belonging to another user.
Patches
The issue is fixed in langgraph-api version 0.15.0. The server now carries changes made by a JavaScript or TypeScript authorization handler across the runtime boundary and applies them before performing the Store operation. It validates the resulting namespace after authorization and rejects the request if an authorization change is malformed or cannot be applied safely.
Users should upgrade to langgraph-api>=0.15.0.
Workarounds
Deployments that cannot upgrade immediately should change JavaScript or TypeScript Store authorization handlers to reject requests for unauthorized namespaces rather than relying on namespace rewriting.
This workaround must be applied to every Store action exposed by the deployment.
Inside the record
Evidence available
Describes the evidence in this view, not whether the product is safe.
Original records
CVE-2026-118668View the latest unmodified CVE JSON from the official source. It may be newer than this imported page.
cve.new JSON →Underlying weaknesses
The source’s classification of what caused the vulnerability.
Contributing organizations · 2
Assigning organization
Additional data publisher
What changed
Follow changes- CVE · CVE-2026-118668
Observed 2026-10-29T17:51:49.074Z · upstream updated 2026-10-29T17:22:55.674Z
Prioritization updated
before
[]
after
[ { "source": "CISA-ADP", "type": "SSVC", "role": "CISA Coordinator", "timestamp": "2026-10-29T15:36:58.517052Z", "decisions": [ { "name": "Exploitation", "value": "none" }, { "name": "Automatable", "value": "no" }, { "name": "Technical Impact", "value": "total" } ] } ]
Large field values are marked as truncated previews. Original source snapshots remain retained.
Showing up to 50 most recent observed changes.