GHSA-29GX-H2M3-XW44

Vulnerability from github – Published: 2026-10-07 18:01 – Updated: 2026-10-07 18:01
VLAI
Summary
Backstage's scaffolder credential handling may allow unintended GitHub authentication fallback
Details

Impact

Scaffolder actions that interact with source control systems may not consistently enforce the intended credential boundaries under certain configurations. An authenticated user could perform operations with broader access than intended.

Patches

  • @backstage/plugin-scaffolder-backend version 4.1.0
  • @backstage/plugin-scaffolder-backend-module-azure version 0.2.25
  • @backstage/plugin-scaffolder-backend-module-bitbucket-cloud version 0.3.10
  • @backstage/plugin-scaffolder-backend-module-bitbucket-server version 0.2.25
  • @backstage/plugin-scaffolder-backend-module-github version 0.9.13
  • @backstage/plugin-scaffolder-backend-module-gitlab version 0.11.10

The fix introduces a new configuration option that enforces user-provided credentials for supported SCM actions. The new behavior is opt-in for compatibility. After upgrading, set:

scaffolder:
  requireScmUserCredentials: true

Before enabling this setting, review and update your templates as described in the software templates documentation referred to below.

Workarounds

If you cannot upgrade and enable the setting immediately:

  • Restrict who can create Scaffolder tasks and which templates they can execute.
  • Limit SCM integration credentials to the minimum repository read and mutation permissions required.
  • Remove integration credentials for SCM hosts where all required operations can use explicitly supplied user tokens.
Show details on source website

{
  "affected": [
    {
      "package": {
        "ecosystem": "npm",
        "name": "@backstage/plugin-scaffolder-backend"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "4.1.0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "package": {
        "ecosystem": "npm",
        "name": "@backstage/plugin-scaffolder-backend-module-github"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "0.9.13"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "package": {
        "ecosystem": "npm",
        "name": "@backstage/plugin-scaffolder-backend-module-gitlab"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "0.11.10"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "package": {
        "ecosystem": "npm",
        "name": "@backstage/plugin-scaffolder-backend-module-azure"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "0.2.25"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "package": {
        "ecosystem": "npm",
        "name": "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "0.3.10"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "package": {
        "ecosystem": "npm",
        "name": "@backstage/plugin-scaffolder-backend-module-bitbucket-server"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "0.2.25"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [
    "CVE-2026-106462"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-441",
      "CWE-863"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-10-07T18:01:53Z",
    "nvd_published_at": "2026-10-06T21:17:17Z",
    "severity": "MODERATE"
  },
  "details": "### Impact\n\nScaffolder actions that interact with source control systems may not consistently enforce the intended credential boundaries under certain configurations. An authenticated user could perform operations with broader access than intended.\n\n### Patches\n\n- `@backstage/plugin-scaffolder-backend` version `4.1.0`\n- `@backstage/plugin-scaffolder-backend-module-azure` version `0.2.25`\n- `@backstage/plugin-scaffolder-backend-module-bitbucket-cloud` version `0.3.10`\n- `@backstage/plugin-scaffolder-backend-module-bitbucket-server` version `0.2.25`\n- `@backstage/plugin-scaffolder-backend-module-github` version `0.9.13`\n- `@backstage/plugin-scaffolder-backend-module-gitlab` version `0.11.10`\n\nThe fix introduces a new configuration option that enforces user-provided credentials for supported SCM actions. The new behavior is opt-in for compatibility. After upgrading, set:\n\n```yaml\nscaffolder:\n  requireScmUserCredentials: true\n```\n\nBefore enabling this setting, review and update your templates as described in the software templates documentation referred to below.\n\n### Workarounds\n\nIf you cannot upgrade and enable the setting immediately:\n\n- Restrict who can create Scaffolder tasks and which templates they can execute.\n- Limit SCM integration credentials to the minimum repository read and mutation permissions required.\n- Remove integration credentials for SCM hosts where all required operations can use explicitly supplied user tokens.",
  "id": "GHSA-29gx-h2m3-xw44",
  "modified": "2026-10-07T18:01:54Z",
  "published": "2026-10-07T18:01:53Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/backstage/backstage/security/advisories/GHSA-29gx-h2m3-xw44"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-106462"
    },
    {
      "type": "WEB",
      "url": "https://github.com/backstage/backstage/commit/6fb2a41ea47da37eafe5ea744050"
    },
    {
      "type": "WEB",
      "url": "https://github.com/backstage/backstage/commit/6fb2a41ea47da37eafe5ea744050ef90be6820c0"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/backstage/backstage"
    },
    {
      "type": "WEB",
      "url": "https://github.com/backstage/backstage/releases/tag/v1.54.6"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N",
      "type": "CVSS_V3"
    }
  ],
  "summary": "Backstage\u0027s scaffolder credential handling may allow unintended GitHub authentication fallback"
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

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.

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.


Loading…