PYSEC-2026-4240

LangGraph SDK custom auth silently ignores actions= on resource decorators

At a glance

Published
Updated
CVE
CVE-2026-104873
Aliases
GHSA-fvww-7h3r-vfhp
CVSS_V4
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Description

### Impact _What kind of vulnerability is it? Who is impacted?_ `langgraph-sdk` incorrectly applies the `actions=` argument on resource-scoped authorization decorators, including `@auth.on.threads`, `@auth.on.assistants`, and `@auth.on.crons`. In affected versions, a decorator such as: ```python @auth.on.threads(actions=["create"]) async def allow_thread_create(ctx, value): return None ``` intended to register a handler for selected actions instead registers that handler for every action on the resource. Because the resource-wide handler is selected before broader fallback handlers, authorization checks implemented in those fallback handlers may not run. An authenticated user may therefore be able to perform actions the application intended to deny, such as reading, updating, or deleting another user's resource. Exploitability and impact depend on the affected handler's behavior: deployments remain protected if that handler independently enforces the necessary action, ownership, or permission checks for every request it receives. Only Python deployments using `actions=` on the affected resource-scoped decorators are affected. ### Patches 0.4.4 ### Workarounds No. ### References N/A

Affected packages

PackageVersions
PyPI · langgraph-sdkintroduced 0.1.45, fixed 0.4.4

References

Sources

SourceLicence
OSV.devCC-BY 4.0 — PyPA Advisory Database