/

CVE-2026-106503

Severity:

HIGH RISK

(8.1)

Authorization Bypass (CWE-284) in Backstage Scaffolder

CVE-2026-106503

Analyzed

Vulnerability type

Category:

Authorization Bypass

CWE:

CWE-178, CWE-284

Impact:

Unauthorized access to source-control resources

Severity:

HIGH RISK

(8.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A scaffolder action input authorization bypass in Backstage may allow an authenticated user with access to affected templates to circumvent configured restrictions on actions. Depending on available integration credentials, this could enable unauthorized access to repositories and related source-control resources.

A scaffolder action input authorization bypass in Backstage may allow an authenticated user with access to affected templates to circumvent configured restrictions on actions. Depending on available integration credentials, this could enable unauthorized access to repositories and related source-control resources.

Affected context

The issue occurs in Backstage deployments using the @backstage/plugin-scaffolder-backend package when users can run affected Scaffolder templates and action restrictions are relied upon to limit permitted operations. Risk is greater where the Scaffolder backend has credentials with write or administrative access to repositories or other source-control resources.

The issue occurs in Backstage deployments using the @backstage/plugin-scaffolder-backend package when users can run affected Scaffolder templates and action restrictions are relied upon to limit permitted operations. Risk is greater where the Scaffolder backend has credentials with write or administrative access to repositories or other source-control resources.

Exploit preconditions

  • Attack surface: Backstage Scaffolder template execution
  • Required access: An authenticated account permitted to access affected templates
  • Trigger point: Submission or execution of a template containing restricted scaffolder actions
  • Why exploitation is possible: Action input authorization checks may be bypassed, allowing configured restrictions to be circumvented
  • Additional dependency: The resulting impact depends on the permissions and integrations available to the Scaffolder backend
  • Attack surface: Backstage Scaffolder template execution
  • Required access: An authenticated account permitted to access affected templates
  • Trigger point: Submission or execution of a template containing restricted scaffolder actions
  • Why exploitation is possible: Action input authorization checks may be bypassed, allowing configured restrictions to be circumvented
  • Additional dependency: The resulting impact depends on the permissions and integrations available to the Scaffolder backend

Why this happens

The underlying flaw is an authorization enforcement failure in the handling of scaffolder action inputs. The backend does not consistently ensure that requested actions remain within the restrictions configured for the template or execution context, allowing an authenticated user to influence an unauthorized operation. This aligns primarily with CWE-284, Improper Access Control, and is also related to CWE-178, Improper Handling of Case Sensitivity, where inconsistent interpretation or comparison of authorization values can contribute to bypass conditions.

The underlying flaw is an authorization enforcement failure in the handling of scaffolder action inputs. The backend does not consistently ensure that requested actions remain within the restrictions configured for the template or execution context, allowing an authenticated user to influence an unauthorized operation. This aligns primarily with CWE-284, Improper Access Control, and is also related to CWE-178, Improper Handling of Case Sensitivity, where inconsistent interpretation or comparison of authorization values can contribute to bypass conditions.

Potential impact

  • An attacker may invoke scaffolder actions that should be restricted
  • Unauthorized repository reads, writes, or other source-control operations could occur
  • Repository contents or project configuration may be modified
  • Exposed integration credentials could be used beyond their intended scope
  • Downstream builds, deployments, or supply-chain workflows could be affected
  • An attacker may invoke scaffolder actions that should be restricted
  • Unauthorized repository reads, writes, or other source-control operations could occur
  • Repository contents or project configuration may be modified
  • Exposed integration credentials could be used beyond their intended scope
  • Downstream builds, deployments, or supply-chain workflows could be affected

General mitigation guidance

Mitigation generally focuses on enforcing authorization at the action

execution boundary rather than trusting template declarations or user-supplied

inputs alone.

Common defensive patterns include:

  • Applying explicit allowlists for actions and validating them server-side
  • Binding authorization decisions to the authenticated identity and intended template
  • Using canonical, unambiguous comparisons for action names and related inputs
  • Separating template authorship privileges from template execution privileges
  • Limiting source-control credentials to the minimum required repositories and operations
  • Avoiding broad shared credentials and preferring short-lived, narrowly scoped identities
  • Treating template and action configuration as security-sensitive policy
  • Requiring review or approval for operations that modify protected resources

Mitigation generally focuses on enforcing authorization at the action

execution boundary rather than trusting template declarations or user-supplied

inputs alone.

Common defensive patterns include:

  • Applying explicit allowlists for actions and validating them server-side
  • Binding authorization decisions to the authenticated identity and intended template
  • Using canonical, unambiguous comparisons for action names and related inputs
  • Separating template authorship privileges from template execution privileges
  • Limiting source-control credentials to the minimum required repositories and operations
  • Avoiding broad shared credentials and preferring short-lived, narrowly scoped identities
  • Treating template and action configuration as security-sensitive policy
  • Requiring review or approval for operations that modify protected resources

How teams detect issues like this

Detection can combine:

  • Static analysis for authorization checks that occur only during template parsing or configuration loading
  • Code review of every path from user-controlled scaffolder inputs to action dispatch
  • Tests that attempt restricted actions through alternate input representations and execution paths
  • Audit logging of template identity, user identity, selected actions, authorization decisions, and target repositories
  • Alerts for unexpected repository access, writes, or action usage by the Scaffolder service identity
  • Policy checks requiring server-side action allowlists and least-privilege integration scopes

Automated security review tools may help identify missing authorization checks,

inconsistent comparisons, and calls to privileged integrations without

corresponding policy enforcement.

Detection can combine:

  • Static analysis for authorization checks that occur only during template parsing or configuration loading
  • Code review of every path from user-controlled scaffolder inputs to action dispatch
  • Tests that attempt restricted actions through alternate input representations and execution paths
  • Audit logging of template identity, user identity, selected actions, authorization decisions, and target repositories
  • Alerts for unexpected repository access, writes, or action usage by the Scaffolder service identity
  • Policy checks requiring server-side action allowlists and least-privilege integration scopes

Automated security review tools may help identify missing authorization checks,

inconsistent comparisons, and calls to privileged integrations without

corresponding policy enforcement.

Sources

SourceLink
github.comgithub.com/backstage/backstage/commit/11c1384c0649b8ab26391c6a4e4f34b80ab0d188
github.comgithub.com/backstage/backstage/commit/a91ed72d540e80b62a73b39bb1563ff5018d52d1
github.comgithub.com/backstage/backstage/commit/e307e4f487103d815e484291b3fda778ab9983bf
github.comgithub.com/backstage/backstage/releases/tag/v1.49.6
github.comgithub.com/backstage/backstage/releases/tag/v1.50.5
github.comgithub.com/backstage/backstage/releases/tag/v1.54.6
github.comgithub.com/backstage/backstage/security/advisories/GHSA-hmp2-4m7g-22cv

Frequently asked

questions

An authenticated user generally needs access to affected Scaffolder

templates. The practical scope depends on which templates, actions, and

integrations that account can reach.

No. Exploitation can occur through normal Scaffolder functionality when the

user is authorized to invoke an affected template. Direct host access is not

ordinarily required.

Enforce action authorization on the server immediately before execution,

validate requested actions against explicit policy, and avoid relying solely

on template-provided restrictions or user-controlled inputs.

Use least-privilege source-control credentials, maintain reviewed action

allowlists, test authorization boundaries, log privileged operations, and

include authorization-bypass cases in automated security testing and code

review.

An authenticated user generally needs access to affected Scaffolder

templates. The practical scope depends on which templates, actions, and

integrations that account can reach.

No. Exploitation can occur through normal Scaffolder functionality when the

user is authorized to invoke an affected template. Direct host access is not

ordinarily required.

Enforce action authorization on the server immediately before execution,

validate requested actions against explicit policy, and avoid relying solely

on template-provided restrictions or user-controlled inputs.

Use least-privilege source-control credentials, maintain reviewed action

allowlists, test authorization boundaries, log privileged operations, and

include authorization-bypass cases in automated security testing and code

review.

Find out what's already
exploitable in your codebase.