All vulnerabilities
CVE-2026-55236GHSA-jfj5-wrj9-63x4PYSEC-2026-3858

langgraph-api: Incomplete assistant authorization in LangGraph Server run creation

langchain-ai langgraph-apipipLibraries & packages
CVSS
5.9Medium
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.26%Chance of exploitation activity in the next 30 days, higher than 17% of CVEs. Scored 28 Oct 2026FIRST EPSS
Fixed in0.10.0Fixed versionGitHub
Published14 Sep 2026Updated 28 Oct 2026CVE List

What fixes it

  • 0.10.0langgraph-api, pipGitHub
  • 0.10.0langgraph-api, PyPIOSVpip install "langgraph-api>=0.10.0"

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

Summary

In affected versions of langgraph-api (the LangGraph Server runtime), the run-creation path authorized the assistant attached to a run using a different authorization event than the rest of the assistant-handling code paths. Direct assistant reads and cron creation dispatch the assistants.read authorization event; run creation dispatched assistants.search with an incomplete value. In deployments whose custom authorization handlers register only an assistants.read handler (without an assistants.search handler and without a global fallback handler), no handler was consulted on the run-creation path, the returned filter set was empty, and the owner constraint was omitted from the resulting query.

As a result, in those deployments a request to create a run could reference a private assistant owned by another user, even where direct assistant reads, assistant search, and cron creation against that assistant were correctly denied. The run-creation response merged the referenced assistant's metadata, config, and context into fields returned to the requesting user. These fields can carry sensitive configuration; the runtime encrypts them at rest for that reason.

We have no evidence of this behavior occurring in the wild.

Affected users / systems

You may be affected if you:

  • run langgraph-api (the LangGraph Server / Agent Server runtime, including via the LangGraph Platform Helm chart), and
  • use custom authorization handlers that gate assistant access through an assistants.read or assistants.search handler rather than a global handler covering all assistant events.

Deployments without custom authorization handlers, or whose handlers apply an equivalent owner filter across all assistant events (for example through a global handler), are not affected.

Impact

  • Confidentiality: exposure of another user's private assistant metadata, config, and context through the run-creation response. These fields can contain sensitive configuration.
  • Integrity: creation of a run associated with another user's private assistant, beyond the requesting user's authorization scope; the run is then carried out using that assistant's configuration.

Patches / mitigation

Run creation, and the parallel cron-creation path, now dispatch the assistants.read authorization event in both the in-memory and gRPC/Postgres runtimes, matching direct assistant reads. Client-supplied run and cron metadata is no longer forwarded into that authorization event, so handlers receive a consistent value shape and determine access by returning an owner filter that is applied server-side. Fixed in langgraph-api 0.10.0.

This is a behavioral change for deployments with custom authorization handlers:

  • Handlers that gated assistant access only through assistants.search during run creation are no longer consulted on that path; provide an equivalent assistants.read handler that returns the same owner filter.
  • The metadata field on the assistants.read event during run and cron creation is no longer populated; handlers that read or stamped it should move that logic into the run/cron create handlers.

Operational guidance

  • Register an assistants.read handler (or a global handler covering it) that returns an owner-style filter, and confirm parity across the assistant read, search, and run/cron creation paths.
  • Upgrade to a release containing this change.

Text from GitHub Advisory Database

Affected versions 53

  • langgraph-api, pip< 0.10.0GitHub
  • langgraph-apiaffected: < 0.10.0CVE List
  • langgraph-api, PyPIfrom first release, fixed in 0.10.0OSV
  • langgraph-api, PyPI0.0.1OSV
  • langgraph-api, PyPI0.0.10OSV
  • langgraph-api, PyPI0.0.11OSV
  • langgraph-api, PyPI0.0.12OSV
  • langgraph-api, PyPI0.0.13OSV
  • langgraph-api, PyPI0.0.14OSV
  • langgraph-api, PyPI0.0.15OSV
  • langgraph-api, PyPI0.0.16OSV
  • langgraph-api, PyPI0.0.17OSV
  • langgraph-api, PyPI0.0.18OSV
  • langgraph-api, PyPI0.0.19OSV
  • langgraph-api, PyPI0.0.2OSV
  • langgraph-api, PyPI0.0.20OSV
  • langgraph-api, PyPI0.0.21OSV
  • langgraph-api, PyPI0.0.22OSV
  • langgraph-api, PyPI0.0.23OSV
  • langgraph-api, PyPI0.0.24OSV
  • langgraph-api, PyPI0.0.25OSV
  • langgraph-api, PyPI0.0.26OSV
  • langgraph-api, PyPI0.0.27OSV
  • langgraph-api, PyPI0.0.28OSV
  • langgraph-api, PyPI0.0.28rc1OSV
  • langgraph-api, PyPI0.0.3OSV
  • langgraph-api, PyPI0.0.30OSV
  • langgraph-api, PyPI0.0.31OSV
  • langgraph-api, PyPI0.0.32OSV
  • langgraph-api, PyPI0.0.33OSV
  • langgraph-api, PyPI0.0.34OSV
  • langgraph-api, PyPI0.0.36OSV
  • langgraph-api, PyPI0.0.37OSV
  • langgraph-api, PyPI0.0.38OSV
  • langgraph-api, PyPI0.0.39OSV
  • langgraph-api, PyPI0.0.4OSV
  • langgraph-api, PyPI0.0.40OSV
  • langgraph-api, PyPI0.0.41OSV
  • langgraph-api, PyPI0.0.42OSV
  • langgraph-api, PyPI0.0.43OSV
  • langgraph-api, PyPI0.0.44OSV
  • langgraph-api, PyPI0.0.45OSV
  • langgraph-api, PyPI0.0.46OSV
  • langgraph-api, PyPI0.0.47OSV
  • langgraph-api, PyPI0.0.48OSV
  • langgraph-api, PyPI0.0.5OSV
  • langgraph-api, PyPI0.0.6OSV
  • langgraph-api, PyPI0.0.7OSV
  • langgraph-api, PyPI0.0.8OSV
  • langgraph-api, PyPI0.0.9OSV
  • langgraph-api, PyPI0.1.0OSV
  • langgraph-api, PyPI0.1.12OSV
  • langgraph-api, PyPI0.1.13OSV

References 5