GHSA-8PRR-F582-JQQ3

Vulnerability from github – Published: 2026-10-28 21:13 – Updated: 2026-10-28 21:13
VLAI
Summary
LangGraph CLI prints the registry push token in `langgraph deploy --verbose` output
Details

Summary

langgraph deploy --verbose printed the temporary registry push token that the CLI uses to log Docker in to the deployment's image registry. Anyone who could read that output, for example in CI logs, could use the token until it expired.

Details

When Docker is available, langgraph deploy builds the image locally, requests a push token from LangSmith, and runs docker login --password-stdin with the token on stdin. The CLI's subprocess helper printed each command's stdin when verbose output was on, and the login step inherited --verbose, so the token was printed right after the docker login command line.

langgraph-cli 0.4.15 through 0.4.31 are affected. Starting with 0.4.32, the login step runs without verbose output. Deploys run without --verbose, and deploys that build the image remotely, never printed the token.

Impact

You may be affected if you ran langgraph deploy --verbose with an affected version and the output was kept or shared, for example in CI logs or terminal recordings. The token is short-lived (at most 12 hours) and limited to that deployment's image repository. Someone holding it before it expired could pull the deployment's images and push new images to that repository. Deployments reference their image by digest, so a pushed image does not run unless the deployment is updated to use it, which requires a LangSmith API key with access to the deployment.

Remediation

Upgrade to langgraph-cli 0.4.32 or later. 0.4.37 also stops --verbose from printing the input of any command the CLI runs. Tokens printed more than 12 hours ago have expired.

Show details on source website

{
  "affected": [
    {
      "database_specific": {
        "last_known_affected_version_range": "\u003c= 0.4.31"
      },
      "package": {
        "ecosystem": "PyPI",
        "name": "langgraph-cli"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0.4.15"
            },
            {
              "fixed": "0.4.32"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [
    "CVE-2026-115885"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-532"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-10-28T21:13:18Z",
    "nvd_published_at": "2026-10-23T22:16:57Z",
    "severity": "MODERATE"
  },
  "details": "### Summary\n\n`langgraph deploy --verbose` printed the temporary registry push token that the CLI uses to log Docker in to the deployment\u0027s image registry. Anyone who could read that output, for example in CI logs, could use the token until it expired.\n\n### Details\n\nWhen Docker is available, `langgraph deploy` builds the image locally, requests a push token from LangSmith, and runs `docker login --password-stdin` with the token on stdin. The CLI\u0027s subprocess helper printed each command\u0027s stdin when verbose output was on, and the login step inherited `--verbose`, so the token was printed right after the `docker login` command line.\n\n`langgraph-cli` 0.4.15 through 0.4.31 are affected. Starting with 0.4.32, the login step runs without verbose output. Deploys run without `--verbose`, and deploys that build the image remotely, never printed the token.\n\n### Impact\n\nYou may be affected if you ran `langgraph deploy --verbose` with an affected version and the output was kept or shared, for example in CI logs or terminal recordings. The token is short-lived (at most 12 hours) and limited to that deployment\u0027s image repository. Someone holding it before it expired could pull the deployment\u0027s images and push new images to that repository. Deployments reference their image by digest, so a pushed image does not run unless the deployment is updated to use it, which requires a LangSmith API key with access to the deployment.\n\n### Remediation\n\nUpgrade to `langgraph-cli` 0.4.32 or later. 0.4.37 also stops `--verbose` from printing the input of any command the CLI runs. Tokens printed more than 12 hours ago have expired.",
  "id": "GHSA-8prr-f582-jqq3",
  "modified": "2026-10-28T21:13:18Z",
  "published": "2026-10-28T21:13:18Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/langchain-ai/langgraph/security/advisories/GHSA-8prr-f582-jqq3"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-115885"
    },
    {
      "type": "WEB",
      "url": "https://github.com/langchain-ai/langgraph/pull/8482"
    },
    {
      "type": "WEB",
      "url": "https://github.com/langchain-ai/langgraph/commit/1afaca35a0d4962fb0203a0e9133a07ffd6a553c"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/langchain-ai/langgraph"
    },
    {
      "type": "WEB",
      "url": "https://github.com/langchain-ai/langgraph/releases/tag/cli%3D%3D0.4.32.dev0"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:L/A:N",
      "type": "CVSS_V3"
    },
    {
      "score": "CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N",
      "type": "CVSS_V4"
    }
  ],
  "summary": "LangGraph CLI prints the registry push token in `langgraph deploy --verbose` output"
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline

Sightings and recorded dates, grouped by day · UTC

JSON
Events included in the timeline

Loading timeline…


    Loading…

    Loading…

    Loading…

    Related by attack behaviour

    Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.