Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify Backstage proxy endpoint
-
ExploitRequest nested protected path under public parent
-
ExecutionParent exemption bypasses credential check
-
ImpactReach protected upstream with injected static credentials
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
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 operator to have configured overlapping entries in proxy.endpoints where a parent path grants unauthenticated access (credentials: 'dangerously-allow-unauthenticated') and a nested path under it enforces credentials (credentials: 'require', typically with static upstream credentials via 'headers' or externalAccess static token). The bypass only triggers for nested routes shadowed by such a permissive parent. Limiting factors: this is NOT a default configuration - a deployment with no overlapping public-parent/protected-child proxy routes is not exploitable; High attack complexity (AC:H) reflects this configuration dependency. Affects @backstage/plugin-proxy-backend from 0.5.0 up to (not including) 0.6.18. |
| Impact | This is a genuine but conditional, moderate-severity authorization flaw (CWE-863) rather than a top-priority emergency. The provided CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N, base 4.8 MEDIUM) is internally consistent with the description: network-reachable (proxy over HTTP), no privileges or user interaction for the attacker, but High attack complexity because exploitation depends entirely on the operator having configured overlapping proxy routes with mismatched credential requirements. No EPSS score, KEV entry, or POC was supplied in the intelligence set. Per precision rules this is therefore 'no public exploit identified at time of analysis' - note that absence of EPSS/KEV is not evidence of safety, only missing signal. The dominant risk driver is not attacker skill but configuration prevalence: environments that never create a parent 'dangerously-allow-unauthenticated' route overlapping a nested 'require' route are not exposed at all. Where the vulnerable overlap exists, the impact is real - an unauthenticated caller reaches a protected upstream, potentially using static upstream credentials Backstage injects - but confidentiality/integrity impact is rated Low. Net: patch-worthy and config-auditable, but not a drop-everything issue absent evidence of the risky configuration or active exploitation. |
| Exploit ScenarioDerived | An operator has configured the Backstage proxy with a public parent path (e.g. '/parent-first' set to 'dangerously-allow-unauthenticated') and a nested protected path under it (e.g. '/parent-first/protected' set to 'require', with static upstream credentials). An unauthenticated remote attacker requests the nested protected route; the parent's unauthenticated exemption incorrectly covers it, so Backstage forwards the request to the protected upstream and attaches the configured static credentials. No public exploit was identified at time of analysis; the fix commit's regression test demonstrates the exact request pattern. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
Inconsistent credential enforcement in the @backstage/plugin-proxy-backend package (versions 0.5.0 through 0.6.17) lets unauthenticated callers reach nested proxy upstreams that were explicitly configured to require credentials. When an operator defines an overlapping parent proxy path with credentials set to 'dangerously-allow-unauthenticated' and a nested child path under it with credentials set to 'require', the permissive parent exemption is applied to requests matched by the nested route, so the request is forwarded to the protected upstream and may be sent with static upstream credentials configured for that proxy. The CVSS vector (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N) marks this as unauthenticated but high-complexity because exploitation depends on a specific overlapping proxy configuration rather than default settings; no public exploit code has been identified and the issue is not confirmed actively exploited (no CISA KEV listing).
RemediationAI
Upgrade @backstage/plugin-proxy-backend to 0.6.18 or later, or move to the Backstage v1.55.0 release train that bundles the fixed plugin (https://github.com/backstage/backstage/releases/tag/v1.55.0); the fix is commit 9df92923ac32558bb80edeceafd8de780c44e218 and details are in advisory GHSA-472h-9c5j-prrr (https://github.com/backstage/backstage/security/advisories/GHSA-472h-9c5j-prrr). If upgrading immediately is not possible, audit the proxy.endpoints configuration and eliminate overlapping routes where a parent path is set to 'dangerously-allow-unauthenticated' while a nested path beneath it is set to 'require' or 'forward'; either change the parent path's credentials to 'require' (side effect: unauthenticated clients lose access to the formerly public parent route) or restructure the configuration so protected proxies are not nested under a permissive parent. Additionally, remove static upstream Authorization headers and externalAccess static tokens from any nested proxy that is shadowed by a permissive parent, so that a bypass yields no usable upstream credential. Note that no workaround preserves the exact permissive-parent plus protected-child topology; the configuration must be changed or the plugin patched.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 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
The @backstage/plugin-proxy-backend is the Backstage backend plugin that exposes configured HTTP proxies defined under the 'proxy.endpoints' configuration key. Each endpoint declares a target URL, optional static headers (including upstream Authorization tokens) and a 'credentials' policy that can be 'require' (caller must authenticate), 'forward' (caller credentials are passed through), or 'dangerously-allow-unauthenticated'. The vulnerability is an instance of CWE-863 (Incorrect Authorization): when proxy paths overlap, such as a parent path marked 'dangerously-allow-unauthenticated' and a nested path marked 'require', route matching resolves the request through the permissive parent and the nested route's credential requirement is never enforced. The fix commit 9df92923ac32558bb80edeceafd8de780c44e218 injects the core httpAuth service into the proxy plugin (adding httpAuth to the plugin init dependencies and passing httpAuthService into the router), so that each matched proxy route consistently applies its own credential requirement. The accompanying tests cover child-defined-first and parent-defined-first ordering, parameterized routes, and routes distinguished by allowedMethods with a parent fallback, confirming the fix addresses multiple overlapping-route shapes.
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
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Network-reachable proxy with unauthenticated attacker (PR:N) but AC:H because exploitation depends on a specific non-default overlapping-route configuration; Low C/I on the exposed upstream, no availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorNVD
Lifecycle Timeline
2DescriptionNVD
Backstage is an open framework for building developer portals. From 0.5.0 until 0.6.18, the @backstage/plugin-proxy-backend package is affected by inconsistent credential enforcement for overlapping proxy routes. An operator can configure overlapping proxy paths with different credential requirements. When a parent path permits unauthenticated access and a nested path requires credentials, the parent exemption can also cover requests handled by the nested proxy. An unauthenticated caller may therefore reach the nested upstream through Backstage, including with static upstream credentials configured for that proxy. This issue is fixed in version 0.6.18.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
The Bitbucket pull-request Scaffolder actions in Backstage can be abused by an authenticated user with template-executio
Backstage is an open platform for building developer portals. Rated critical severity (CVSS 9.9), this vulnerability is
Authenticated Backstage users can retrieve the internal execution data of other users' Scaffolder tasks - notably the Se
Authenticated users who can register or modify a TechDocs documentation source can achieve code execution inside the Bac
Authenticated remote code execution in the @backstage/plugin-techdocs-node package shipped with the Backstage developer
Arbitrary code execution in Backstage TechDocs documentation builds allows an authenticated user with write access to a
Arbitrary Python code execution in Backstage's @backstage/plugin-techdocs-node (versions < 1.13.11 and = 1.14.0) lets a
Improper task-state validation in the @backstage/plugin-scaffolder-backend plugin (Backstage versions prior to 3.3.1, 3.
Arbitrary code execution on the TechDocs backend host is achievable through a sanitizer bypass in the @backstage/plugin-
Improper input validation in the @backstage/plugin-scaffolder-backend-module-sentry scaffolder actions (Backstage 0.3.0
@backstage/plugin-scaffolder-backend is the backend for the default Backstage software templates. Rated high severity (C
Authenticated users of Backstage Scaffolder can bypass administrator-configured action restrictions in @backstage/plugin
EUVD-2026-93989
GHSA-472h-9c5j-prrr
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB