Skip to main content

Backstage EUVDEUVD-2026-94012

| CVE-2026-106492 MEDIUM
Improper Privilege Management (CWE-269)
2026-10-06 GitHub_M GHSA-cq7v-rfgc-5c7v
6.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Obtain restricted external service credential
  2. Exploit
    Invoke plugin-to-plugin delegation path
  3. Execution
    Access restriction not preserved in forwarded token
  4. Impact
    Perform unauthorized write on restricted plugin

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires the deployment to use @backstage/backend-defaults with external service credentials configured WITH access restrictions (e.g., accessRestrictions limiting a static/service token to a specific plugin or to action:read). The attacker must already possess such a restricted-but-valid service credential (hence PR:L) and must route the request through a plugin-to-plugin delegation path (getPluginRequestToken onBehalfOf), where the original permission-name or permission-attribute restrictions were not propagated into the forwarded plugin token. LIMITING FACTORS: no exploitation if access restrictions are not used; the bypass is scoped to plugins reachable via delegation; affected only in versions prior to 0.16.1 / 0.17.8. This is not an unauthenticated remote RCE - it is an authorization-boundary bypass for an already-trusted restricted principal.

Impact

This is a genuine but conditional privilege-escalation issue (CWE-269) rather than a drive-by remote compromise. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L, base 7.6) is internally consistent with the description: network-reachable, low complexity, but requiring PR:L - the attacker must already hold a valid external service credential. The real risk driver is the integrity impact (I:H): a credential intended to be read-only can perform writes on plugins it was restricted from modifying. No EPSS score, CISA KEV entry, or public proof-of-concept was supplied in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation - the only public artifacts are the vendor patch commits and advisory, not weaponized code. Severity is 'High' by CVSS but real-world urgency is gated by a non-default precondition: the deployment must use @backstage/backend-defaults with external service credentials that have access restrictions configured. For environments that rely on those read-only restrictions as a security boundary this is a real priority; for environments that do not configure access restrictions at all, the practical exposure is limited. Note a version-labeling discrepancy worth verifying (see confidence_notes): the description cites fixes in 0.16.1/0.17.8 while the referenced release tags are v1.49.6/v1.54.6.

Exploit ScenarioDerived

An organization issues an external service a static token scoped to read-only access on the catalog plugin. The compromised or malicious holder of that restricted token calls a plugin-to-plugin delegation path (getPluginRequestToken onBehalfOf) so the request is re-issued without the original read-only restriction being preserved, allowing it to perform write operations it was never authorized for. No public exploit code was provided; only the vendor's fix commits are publicly available.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 06, 2026

Improper preservation of access restrictions in Backstage's @backstage/backend-defaults package lets an authenticated holder of a restricted external service credential (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L, rated 7.6) escalate privileges by routing requests through plugin-to-plugin delegation: the credential's permission-name or permission-attribute limits (for example action:read) are dropped when a plugin request token is minted on the credential's behalf, so a read-only principal can perform write operations on plugins it should only be able to read. Only deployments that both use @backstage/backend-defaults and configure external service credentials with accessRestrictions are exposed, and exploitation is scoped to plugins reachable through the delegation path. No public exploit code has been identified at time of analysis and there is no confirmed active exploitation (not in CISA KEV); fixed releases are @backstage/backend-defaults 0.16.1 and 0.17.8.

RemediationAI

Vendor-released patch: upgrade @backstage/backend-defaults to 0.16.1 or 0.17.8 (the matching Backstage framework releases are v1.49.6 and v1.54.6), applying the fix commits 40346245c53e1bf26dee56601e95c5c4ab9cc124 and bc80ffdafbc92ff7b8c72347eace13cb8688fd33 as documented in advisory GHSA-cq7v-rfgc-5c7v. Because the flaw only manifests when a restricted credential is forwarded through plugin-to-plugin delegation, pre-patch compensating controls are: audit every external service credential configured with accessRestrictions and either remove the permission-name/permission-attribute narrowing in favour of plugin-only restrictions that boundary stricter enforcement post-patch, or rotate and tightly scope those tokens so a bypassed restriction cannot reach write-capable plugin endpoints - the trade-off is reduced least-privilege granularity and possible breakage of plugins that legitimately rely on delegated read access. Where feasible, disable or limit the affected delegation flows by not passing restricted credentials into getPluginRequestToken(onBehalfOf: ...) and instead issuing per-plugin credentials, with the trade-off of additional token management overhead. Additionally, monitor backend logs and audit trails for read-restricted credentials appearing as the principal on write operations, and treat any such occurrence as a potential compromise requiring credential rotation. Reviewing the post-patch behaviour is important because permission-level restrictions will now throw NotAllowedError on delegation, which may surface as new errors in existing deployments that depended on the previous permissive behaviour.

Affected VersionsENISA

backend-defaults < 0.16.1
backstage 1.50.0-next.0, < 1.54.6
backstage < 1.49.6
backend-defaults 0.17.0, < 0.17.8

Affected Packages

npm @backstage/backend-defaults fix: 0.17.8
euvd backend_defaults fix: 0.16.1, 0.17.8
euvd backstage fix: 1.49.6
euvd backstage_1_50_0_next_0 fix: 1.54.6

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 4 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 is an open framework for building developer portals, and @backstage/backend-defaults supplies the default backend service implementations, including DefaultAuthService and the external service credential (static/service token) handling that underpins plugin-to-plugin authentication. Service credentials can carry accessRestrictions that list the plugins a token may reach and, optionally, permissionNames or permissionAttributes such as { action: 'read' } that further narrow what the token may do. The CWE-269 (Improper Privilege Management) root cause is that DefaultAuthService.getPluginRequestToken, when called with onBehalfOf for a service principal, issued the forwarded plugin token without propagating those permission-level restrictions, so the downstream plugin evaluated the delegated token as if the restriction did not exist. The upstream fix adds NotAllowedError checks in the 'service' case of the internal-forward handling: if the acting service principal has any accessRestrictions, a target plugin missing from the restriction map is rejected ('is not included in token's access restrictions'), and a target plugin whose restriction includes permissionNames or permissionAttributes is rejected as non-delegable ('is restricted and cannot be delegated'). Plugin-only restrictions (no permission names/attributes) continue to permit delegation to the listed plugins, and unrestricted credentials continue to delegate freely, which the accompanying authServiceFactory tests verify. CPE data confirms the impact surface as backstage/backstage together with the @backstage/backend-defaults package, prior to the fixed versions.

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_M) PRIMARY HIGH
NVD 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
vuln.today AI 7.6 HIGH

Attacker needs a valid restricted service credential (PR:L) reaching the backend over the network (AV:N/AC:L); impact is primarily unauthorized writes (I:H) with limited read/availability effect.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorNVD

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

Lifecycle Timeline

4
Severity Changed
Oct 22, 2026 - 13:52 NVD
HIGH MEDIUM
CVSS changed
Oct 22, 2026 - 13:52 NVD
7.6 (HIGH) 6.5 (MEDIUM)
Patch available
Oct 06, 2026 - 22:20 EUVD
CVE Published
Oct 06, 2026 - 20:48 cve.org
HIGH 7.6

DescriptionNVD

Backstage is an open framework for building developer portals. Prior to 0.16.1 and 0.17.8, the @backstage/backend-defaults package is affected by improper preservation of access restrictions during service credential delegation. An external service credential configured with access restrictions (e.g., read-only) could bypass those restrictions by routing requests through plugin delegation paths. This could allow a restricted service to perform operations beyond its intended scope, including write operations on plugins it was restricted to read-only access for. This issue is fixed in versions 0.16.1 and 0.17.8.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 111 npm packages depend on @backstage/backend-defaults (104 direct, 8 indirect)

Ecosystem-wide dependent count for version 0.17.8.

Technical POC Analysis

Advisory: GHSA-cq7v-rfgc-5c7v (published 2026-08-28 by freben).

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

A privilege-escalation flaw in Backstage's @backstage/backend-defaults package allows an authenticated holder of a restricted external service credential to bypass its configured access limits and perform write operations on plugins that credential was only meant to read. Organizations running internal developer portals on Backstage that have scoped external service credentials with accessRestrictions are affected, meaning platform engineering and software delivery teams could see unintended modifications to plugin-managed resources. The exposure is bounded by configuration and plugin reachability, but integrity impact is rated high, so leadership should prioritize remediation of affected deployments.

Business Impact: High
Compensating Controls

Apply vendor patch (fixed releases: @backstage/backend-defaults 0.16.1 and 0.17.8). Until upgrade is complete, restrict or rotate external service credentials that use accessRestrictions, reduce plugin-to-plugin delegation paths, and monitor audit logs for write operations originating from read-only principals.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Medium
popular open-source developer-portal framework, common in enterprise engineering orgs
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Partial

Priority Score

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

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

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-106503 HIGH
8.1 Oct 06

Authenticated users of Backstage Scaffolder can bypass administrator-configured action restrictions in @backstage/plugin

Vendor StatusVendor

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