{"id":"PYSEC-2026-3858","summary":"langgraph-api: Incomplete assistant authorization in LangGraph Server run creation","details":"## Summary\n\nIn 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.\n\nAs 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.\n\nWe have no evidence of this behavior occurring in the wild.\n\n## Affected users / systems\n\nYou may be affected if you:\n\n- run `langgraph-api` (the LangGraph Server / Agent Server runtime, including via the LangGraph Platform Helm chart), and\n- 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.\n\nDeployments 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.\n\n## Impact\n\n- Confidentiality: exposure of another user's private assistant `metadata`, `config`, and `context` through the run-creation response. These fields can contain sensitive configuration.\n- 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.\n\n## Patches / mitigation\n\nRun 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.\n\nThis is a behavioral change for deployments with custom authorization handlers:\n\n- 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.\n- 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.\n\n## Operational guidance\n\n- 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.\n- Upgrade to a release containing this change.","aliases":["CVE-2026-55236","GHSA-jfj5-wrj9-63x4"],"modified":"2026-09-10T12:15:08.178882304Z","published":"2026-09-10T09:44:51.663830Z","references":[{"type":"WEB","url":"https://github.com/langchain-ai/helm/security/advisories/GHSA-jfj5-wrj9-63x4"},{"type":"PACKAGE","url":"https://github.com/langchain-ai/helm"},{"type":"PACKAGE","url":"https://pypi.org/project/langgraph-api"},{"type":"ADVISORY","url":"https://github.com/advisories/GHSA-jfj5-wrj9-63x4"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55236"}],"affected":[{"package":{"name":"langgraph-api","ecosystem":"PyPI","purl":"pkg:pypi/langgraph-api"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.10.0"}]}],"versions":["0.0.1","0.0.10","0.0.11","0.0.12","0.0.13","0.0.14","0.0.15","0.0.16","0.0.17","0.0.18","0.0.19","0.0.2","0.0.20","0.0.21","0.0.22","0.0.23","0.0.24","0.0.25","0.0.26","0.0.27","0.0.28","0.0.28rc1","0.0.3","0.0.30","0.0.31","0.0.32","0.0.33","0.0.34","0.0.36","0.0.37","0.0.38","0.0.39","0.0.4","0.0.40","0.0.41","0.0.42","0.0.43","0.0.44","0.0.45","0.0.46","0.0.47","0.0.48","0.0.5","0.0.6","0.0.7","0.0.8","0.0.9","0.1.0","0.1.12","0.1.13","0.1.14","0.1.15","0.1.16","0.1.17","0.1.18","0.1.2","0.1.20","0.1.21","0.1.22","0.1.23","0.1.3","0.1.4","0.1.5","0.1.6","0.1.7","0.1.8","0.1.9","0.10.0rc1","0.10.0rc2","0.10.0rc3","0.2.0","0.2.1","0.2.10","0.2.100","0.2.102","0.2.108","0.2.109","0.2.11","0.2.110","0.2.111","0.2.113","0.2.114","0.2.115","0.2.117","0.2.12","0.2.120","0.2.123","0.2.124","0.2.125","0.2.126","0.2.128","0.2.129","0.2.13","0.2.130","0.2.132","0.2.134","0.2.135","0.2.137","0.2.14","0.2.15","0.2.16","0.2.17","0.2.18","0.2.19","0.2.2","0.2.20","0.2.21","0.2.23","0.2.24","0.2.25","0.2.26","0.2.27","0.2.28","0.2.29","0.2.3","0.2.30","0.2.32","0.2.34","0.2.35","0.2.36","0.2.37","0.2.38","0.2.39","0.2.4","0.2.40","0.2.42","0.2.43","0.2.44","0.2.45","0.2.46","0.2.48","0.2.5","0.2.51","0.2.54","0.2.56","0.2.6","0.2.60","0.2.61","0.2.63","0.2.64","0.2.66","0.2.67","0.2.68","0.2.69","0.2.7","0.2.70","0.2.71","0.2.72","0.2.75","0.2.76","0.2.77","0.2.78","0.2.8","0.2.83","0.2.85","0.2.86","0.2.88","0.2.89","0.2.9","0.2.92","0.2.94","0.2.95","0.2.96","0.2.97","0.2.98","0.2.99","0.3.0","0.3.1","0.3.4","0.4.0","0.4.1","0.4.11","0.4.14","0.4.15","0.4.16","0.4.17","0.4.18","0.4.19","0.4.20","0.4.21","0.4.22","0.4.23","0.4.24","0.4.25","0.4.26","0.4.27","0.4.28","0.4.29","0.4.30","0.4.31","0.4.32","0.4.33","0.4.34","0.4.35","0.4.36","0.4.37","0.4.38","0.4.39","0.4.40","0.4.41","0.4.42","0.4.43","0.4.44","0.4.45","0.4.46","0.4.47","0.4.48","0.4.7","0.4.9","0.5.0","0.5.1","0.5.10","0.5.11","0.5.12","0.5.13","0.5.14","0.5.15","0.5.16","0.5.17","0.5.18","0.5.19","0.5.2","0.5.20","0.5.21","0.5.22","0.5.23","0.5.24","0.5.25","0.5.26","0.5.27","0.5.28","0.5.29","0.5.3","0.5.30","0.5.31","0.5.32","0.5.33","0.5.34","0.5.35","0.5.36","0.5.37","0.5.38","0.5.39","0.5.4","0.5.40","0.5.41","0.5.42","0.5.5","0.5.6","0.5.7","0.5.8","0.5.9","0.6.0","0.6.1","0.6.10","0.6.11","0.6.12","0.6.13","0.6.14","0.6.15","0.6.16","0.6.17","0.6.18","0.6.19","0.6.2","0.6.20","0.6.21","0.6.22","0.6.23","0.6.24","0.6.25","0.6.26","0.6.27","0.6.28","0.6.29","0.6.3","0.6.30","0.6.31","0.6.32","0.6.33","0.6.34","0.6.35","0.6.36","0.6.37","0.6.38","0.6.39","0.6.4","0.6.5","0.6.6","0.6.7","0.6.8","0.6.9","0.7.0","0.7.1","0.7.100","0.7.101","0.7.102","0.7.103","0.7.12","0.7.13","0.7.14","0.7.15","0.7.16","0.7.17","0.7.18","0.7.19","0.7.2","0.7.21","0.7.22","0.7.23","0.7.24","0.7.25","0.7.26","0.7.27","0.7.28","0.7.29","0.7.3","0.7.30","0.7.31","0.7.32","0.7.33","0.7.34","0.7.35","0.7.36","0.7.37","0.7.38","0.7.39","0.7.4","0.7.40","0.7.41","0.7.42","0.7.43","0.7.44","0.7.45","0.7.46","0.7.47","0.7.48","0.7.49","0.7.5","0.7.50","0.7.51","0.7.52","0.7.53","0.7.54","0.7.55","0.7.56","0.7.57","0.7.58","0.7.59","0.7.6","0.7.60","0.7.61","0.7.62","0.7.63","0.7.64","0.7.65","0.7.66","0.7.67","0.7.68","0.7.69","0.7.7","0.7.70","0.7.71","0.7.72","0.7.73","0.7.74","0.7.75","0.7.76","0.7.77","0.7.78","0.7.79","0.7.8","0.7.80","0.7.81","0.7.82","0.7.83","0.7.84","0.7.85","0.7.86","0.7.87","0.7.88","0.7.89","0.7.9","0.7.90","0.7.91","0.7.92","0.7.93","0.7.94","0.7.95","0.7.96","0.7.97","0.7.98","0.7.99","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.9.0","0.9.0.dev1","0.9.0.dev2","0.9.0.dev3","0.9.0.dev4","0.9.0.dev5","0.9.0.dev6","0.9.0rc1","0.9.1"],"database_specific":{"source":"https://github.com/pypa/advisory-database/blob/main/vulns/langgraph-api/PYSEC-2026-3858.yaml"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N"}]}