Skip to main content

Backstage Scaffolder EUVDEUVD-2026-94068

| CVE-2026-106503 HIGH
Improper Handling of Case Sensitivity (CWE-178)
2026-10-06 security-advisories@github.com GHSA-hmp2-4m7g-22cv
8.1
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to Backstage with Scaffolder template access
  2. Delivery
    Invoke restricted scaffolder action
  3. Exploit
    Supply restricted input with altered case or numeric type
  4. Execution
    Bypass HAS_STRING_PROPERTY permission check
  5. Persist
    Action runs with integration credentials
  6. Impact
    Unauthorized access to source-control repositories

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Case sensitivity handling
Exploitation Conditions

Exploitation requires an authenticated Backstage user who already has access to the affected Scaffolder templates AND an administrator-configured Scaffolder permission policy that restricts actions by input value using rules such as HAS_STRING_PROPERTY/HAS_ACTION_ID (e.g., 'custom:gitlab:group:access', 'github:group:access', 'bitbucketCloud:group:access', or 'publish:github:pull-request'). The bypass works by supplying the restricted input value with different letter casing or as a different JSON type (string vs number). Limiting factors: the attacker must be authenticated and authorized to reach the templates; the impact is bounded by the privileges of the backend integration credentials attached to the scaffolder actions; and deployments that do not use input-value-based permission restrictions have no restriction to bypass. Running an affected version prior to 3.3.1 / 3.4.1 / 4.0.3 / 4.1.0 is required.

Impact

This is a credible, moderately high-priority issue for organizations running Backstage with Scaffolder permission policies, but it is not a mass-exploitation threat. The CVSS 8.1 vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N) indicates a network-reachable, low-complexity flaw requiring low privileges - consistent with the description, which states an *authenticated* user who already has access to affected Scaffolder templates can bypass configured action restrictions. The PR:L in the vector aligns with the 'authenticated user' language, so this is an authorization bypass, not an unauthenticated takeover. The root cause is confirmed by the source code evidence as a CWE-178 case-sensitivity / type-coercion matching flaw: the HAS_STRING_PROPERTY permission rule matched 'example/team' but not 'ExAmPlE/TeAm' or numeric equivalents, letting a user evade input-value restrictions by altering case or type. No EPSS score, KEV listing, or public POC was provided in the input; exploitation requires insider-level access to templates and depends on how impactful the integration credentials (e.g., GitHub/GitLab/Bitbucket tokens) wired into the actions are, so real-world risk is organization-specific and tilts toward privilege escalation by trusted-but-restricted internal users rather than widespread external attack. A:N correctly reflects no availability impact; the danger is unauthorized read/write to source-control resources.

Exploit ScenarioDerived

An authenticated Backstage user who is restricted by a Scaffolder permission policy (e.g., allowed to run a group-access or publish action only against 'example/team') crafts a template execution that supplies the restricted value with altered casing ('ExAmPlE/TeAm') or as a different type (numeric 42 vs string '42'), causing the permission rule to fail to match and allowing the otherwise-denied action to run. Because the action executes with the backend's configured integration credentials, this can grant unauthorized access to repositories and source-control resources the user should not reach. No public exploit code was identified in the provided data, though the fix commit and its tests publicly demonstrate the exact bypass patterns.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 06, 2026

Authenticated users of Backstage Scaffolder can bypass administrator-configured action restrictions in @backstage/plugin-scaffolder-backend by supplying a restricted input value with different letter casing or as a different JSON type (for example a number instead of a string), causing permission checks to fail to match and letting the action execute with the backend integration's credentials. This can grant unauthorized access to repositories and related source-control resources, bounded by the privileges of the integration tokens attached to the affected actions. The issue affects versions before 3.3.1, 3.4.1, 4.0.3, and 4.1.0, and only matters in deployments that actually use input-value-based permission rules; no public exploit code has been identified at time of analysis.

RemediationAI

Upgrade @backstage/plugin-scaffolder-backend to one of the fixed versions for your release line: 3.3.1, 3.4.1, 4.0.3, or 4.1.0; the patched Backstage monorepo releases are v1.49.6, v1.50.5, and v1.54.6, and the fix commits are 11c1384c0649b8ab26391c6a4e4f34b80ab0d188, a91ed72d540e80b62a73b39bb1563ff5018d52d1, and e307e4f487103d815e484291b3fda778ab9983bf, with details in GHSA-hmp2-4m7g-22cv. If patching must be delayed, reduce exposure by restricting which users and groups can access templates that invoke the sensitive actions (gitlab:group:access, github:group:access, bitbucketCloud:group:access, publish:github:pull-request), accepting the trade-off of reduced self-service for developers; by downgrading the privileges of the SCM integration credentials bound to those actions to least-privilege, scoped tokens, which limits the blast radius of a bypass but may break legitimate automated repository operations; and by auditing permission policies for any condition that relies on exact string or numeric equality of action input, since these are the rules the bypass defeats, whereas deployments that do not use input-value-based restrictions are unaffected and need only apply the upgrade for defense in depth.

Affected VersionsENISA

backstage 1.51.0-next.0, < 1.54.6
plugin-scaffolder-backend < 3.3.1
backstage < 1.49.6
plugin-scaffolder-backend 4.0.0, < 4.0.3
backstage 1.50.0-next.0, < 1.50.5
plugin-scaffolder-backend 3.4.0, < 3.4.1
plugin-scaffolder-backend 4.0.4, < 4.1.0

Affected Packages

npm @backstage/plugin-scaffolder-backend fix: 3.3.1, 3.4.1, 4.0.3, 4.1.0
euvd backstage fix: 1.49.6
euvd backstage_1_50_0_next_0 fix: 1.50.5
euvd backstage_1_51_0_next_0 fix: 1.54.6
euvd plugin_scaffolder_backend fix: 3.3.1, 3.4.1, 4.0.3, 4.1.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 5 packages in npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Backstage's Scaffolder backend executes template steps through its Nunjucks workflow runner, which consults the Backstage permission framework before invoking a registered template action. When an administrator writes a conditional permission policy on the scaffolder-action resource type (RESOURCE_TYPE_SCAFFOLDER_ACTION) using rules such as HAS_ACTION_ID combined with HAS_STRING_PROPERTY or HAS_NUMBER_PROPERTY, the runner is expected to reject any action whose input does not satisfy the policy. The root cause maps to CWE-178 (Improper Handling of Case Sensitivity): the value-comparison logic did not normalize case, and it also conflated string and numeric representations of the same value, so inputs like 'ExAmPlE/TeAm', 42, or '42' slipped past conditions that pinned the value to 'example/team' or the number 42. The upstream fix, delivered in the @backstage/plugin-scaffolder-backend package and reflected in commits 11c1384c, a91ed72d, and e307e4f4, tightens matching of action input values in scaffolder permission policies and adds regression tests covering path-style keys, bracket/quoted variants such as [path] and ["path"], and action IDs including gitlab:group:access, github:group:access, bitbucketCloud:group:access, and publish:github:pull-request.

Know when Backstage gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (github) PRIMARY 8.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 8.1 HIGH

Network-reachable scaffolder API with low complexity; PR:L because an authenticated user with template access is required; C:H/I:H for unauthorized repo read/write, A:N as no availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Red Hat 8.1 HIGH

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 06, 2026 - 23:05 EUVD
CVE Published
Oct 06, 2026 - 22:17 cve.org
HIGH 8.1

DescriptionCVE.org

Backstage is an open framework for building developer portals. Prior to 3.3.1, 3.4.1, 4.0.3 and 4.1.0, the @backstage/plugin-scaffolder-backend package is affected by scaffolder action input authorization bypass. An authenticated user with access to affected Scaffolder templates could bypass configured action restrictions. Depending on integration credentials, this could grant unauthorized access to repositories and related source-control resources. This issue is fixed in versions 3.3.1, 3.4.1, 4.0.3 and 4.1.0.

Technical POC Analysis

Bug class: CWE-178 (Improper Handling of Case Sensitivity), with CWE-284 (Improper Access Control) as the impact class.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Backstage Scaffolder deployments that use input-value-based action restrictions are affected by CVE-2026-106503, a high-severity permission-bypass issue in @backstage/plugin-scaffolder-backend. A user with Scaffolder access could craft restricted inputs with altered casing or non-string JSON types to execute actions using backend integration credentials, potentially exposing repositories and source-control resources up to the integration token’s privileges. No public exploit identified at time of analysis, and no vendor-released patch identified at time of analysis, so leadership should prioritize inventory, compensating controls, and repository-access monitoring.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; restrict Scaffolder action permissions, avoid or tightly control input-value-based permission rules, enforce case- and type-normalization of restricted inputs, reduce integration token privileges to least privilege, and monitor and audit Scaffolder action executions and repository access.

Threat Intelligence Overview

EPSS Score
0.4%
Top 73% exploitable
Prevalence
Medium
popular CNCF developer-portal framework, common in engineering orgs but not everywhere
Threat Intel
1
1 sources
Data Quality
7 sources
Confidence: High
EUVD 🇯🇵JVN NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

40
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +40
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2023-35926 CRITICAL
9.9 Jun 22

Backstage is an open platform for building developer portals. Rated critical severity (CVSS 9.9), this vulnerability is

CVE-2026-106501 CRITICAL
9.6 Oct 06

Authenticated Backstage users can retrieve the internal execution data of other users' Scaffolder tasks - notably the Se

CVE-2026-88064 HIGH
8.8 Sep 16

Authenticated users who can register or modify a TechDocs documentation source can achieve code execution inside the Bac

CVE-2026-106558 HIGH
8.8 Oct 07

Authenticated remote code execution in the @backstage/plugin-techdocs-node package shipped with the Backstage developer

CVE-2026-106509 HIGH
8.8 Oct 06

Arbitrary code execution in Backstage TechDocs documentation builds allows an authenticated user with write access to a

CVE-2026-25153 HIGH
8.8 Jan 30

Arbitrary Python code execution in Backstage's @backstage/plugin-techdocs-node (versions < 1.13.11 and = 1.14.0) lets a

CVE-2026-106500 HIGH
8.5 Oct 06

Improper task-state validation in the @backstage/plugin-scaffolder-backend plugin (Backstage versions prior to 3.3.1, 3.

CVE-2026-106486 HIGH
8.5 Oct 06

Path traversal in the Backstage Scaffolder Bitbucket pull-request publish actions allows an authenticated user who can e

CVE-2026-106505 HIGH
8.5 Oct 06

Arbitrary code execution on the TechDocs backend host is achievable through a sanitizer bypass in the @backstage/plugin-

CVE-2026-106459 HIGH
8.5 Oct 06

Improper input validation in the @backstage/plugin-scaffolder-backend-module-sentry scaffolder actions (Backstage 0.3.0

CVE-2021-43783 HIGH
8.5 Nov 29

@backstage/plugin-scaffolder-backend is the backend for the default Backstage software templates. Rated high severity (C

CVE-2026-106488 HIGH
8.1 Oct 06

Improper authentication in the Backstage @backstage/plugin-auth-backend-module-oidc-provider package prior to 0.4.20 let

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy