Skip to main content

Backstage EUVDEUVD-2026-94010

| CVE-2026-106491 MEDIUM
Improper Input Validation (CWE-20)
2026-10-06 GitHub_M GHSA-9ghw-48h5-v2w5
6.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to Backstage
  2. Exploit
    Craft proxy URL with ../ or %2e%2e sequences
  3. Execution
    Proxy forwards beyond configured base path
  4. Impact
    Access unintended paths on target server

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Requires an authenticated Backstage session by default (PR:L), and is limited to upstream servers already configured as proxy endpoints in the proxy-backend configuration - a target not configured as a proxy endpoint cannot be reached. The attacker must supply traversal sequences (literal '../' or URL-encoded '%2e%2e') in the request path to a valid proxy route. Limiting factors that reduce realistic risk: authentication is needed unless an endpoint is deliberately set to 'dangerously-allow-unauthenticated', exploitation only redirects within the already-trusted target host, impact is read-oriented path escape rather than full server compromise, and only deployments running @backstage/plugin-proxy-backend before 0.6.17 with configured proxy endpoints are affected.

Impact

This is a moderate-severity, authenticated path-traversal/SSRF-style flaw in Backstage's @backstage/plugin-proxy-backend, and the signals point to a real-but-bounded issue rather than an urgent emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N, 6.4 Medium) shows network reachability and low attack complexity but requires at least low privileges (PR:L), which aligns with the description's statement that Backstage authentication is required by default. The scope change (S:C) is well-justified because the proxy forwards the manipulated request to a separate target server, so impact crosses a trust boundary. Exploitation status is low: there is no CISA KEV listing, no public exploit referenced, and no EPSS value supplied, so this should be treated as no public exploit identified at time of analysis. The limiting factors are significant - exploitation only works against target servers already configured as proxy endpoints and requires an authenticated session - which narrows real-world impact to information disclosure of unintended paths on already-trusted upstream targets. Net assessment: prioritize patching where proxy endpoints expose sensitive internal services, but this is not a drop-everything, high-real-risk issue given the authentication requirement and absence of exploitation evidence.

Exploit ScenarioDerived

An authenticated Backstage user (any account that can reach the proxy routes) crafts a request to a configured proxy endpoint containing traversal sequences such as '../' or URL-encoded '%2e%2e', causing proxy-backend to forward the request to a path outside the endpoint's configured base path on the upstream target server. This lets the user read or interact with unintended resources on an already-trusted internal target. No public proof-of-concept is referenced, though the fixing commit includes regression tests demonstrating the exact traversal payloads.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% 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 input validation in Backstage's @backstage/plugin-proxy-backend before 0.6.17 allows an authenticated user to craft a request URL containing path traversal sequences that the proxy forwards to a path outside the configured base path on an already-configured upstream target server. The flaw is bounded: the attacker must already hold an authenticated Backstage session (CVSS vector PR:L, unless an endpoint is deliberately configured with 'dangerously-allow-unauthenticated'), and only hosts that are already registered as proxy endpoints can be reached, so the escape is a redirect within an already-trusted target rather than a route to arbitrary internal systems. There is no indication of confirmed active exploitation (not in CISA KEV) and no public exploit code identified at time of analysis; the issue is addressed by vendor-released fixes in @backstage/plugin-proxy-backend 0.6.17 and Backstage release v1.54.6.

RemediationAI

Vendor-released patch: upgrade @backstage/plugin-proxy-backend to 0.6.17 or later, or move to the Backstage release v1.54.6 (https://github.com/backstage/backstage/releases/tag/v1.54.6); the full fix and its accompanying regression tests are visible in commit 233287d0ce3133e41549bf92a7470c940a41753c and the advisory at https://github.com/backstage/backstage/security/advisories/GHSA-9ghw-48h5-v2w5. If an immediate upgrade is not possible, backport or apply the added guard middleware from that commit, which decodes the request path and returns HTTP 400 for any request containing a '..' segment - this is a small, low-risk change but it must be reapplied on every subsequent plugin upgrade and can break legitimate clients that send unusual but harmless path segments. Reduce the attack surface by removing proxy endpoints that are not strictly needed and by never setting 'dangerously-allow-unauthenticated' on an endpoint, since that flag removes the authentication prerequisite and moves the flaw closer to unauthenticated traversal; the trade-off is that affected integrations will stop working. As a complementary control, constrain the proxy targets' network egress and the upstream servers' authorization so that reaching a path outside the configured base path yields nothing sensitive, and monitor proxy-backend logs for HTTP 400s or for paths containing '%2e%2e' or '../' as an exploitation signal; egress restriction is effective but can silently break unrelated Backstage features that share the same outbound network path.

Affected VersionsENISA

plugin-proxy-backend < 0.6.17
backstage < 1.54.6

Affected Packages

npm @backstage/plugin-proxy-backend fix: 0.6.17
euvd backstage fix: 1.54.6
euvd plugin_proxy_backend fix: 0.6.17

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 affected component is the Backstage developer-portal proxy backend plugin (@backstage/plugin-proxy-backend), which is built on the Express-style routing stack and mounts configurable '/api/proxy/<endpoint>' routes that forward incoming requests to operator-defined target servers. Root cause falls under CWE-20 (Improper Input Validation): the router consumed the raw request URL and passed the path portion through to the upstream target without first decoding and normalizing it, so traversal segments such as literal '../' or their percent-encoded equivalent '%2e%2e' survived into the forwarded request line. The upstream fix (commit 233287d0ce3133e41549bf92a7470c940a41753c) inserts a guard middleware ahead of the proxy handlers that decodes req.url up to the query string, normalizes backslashes to forward slashes, splits the path into segments and rejects any request whose segments include '..' with HTTP 400 - the accompanying test asserts 400 for both '/api/proxy/test/../../other' and '/api/proxy/test/%2e%2e/other'. Because the middleware operates on the decoded path, it also closes the encoded-traversal variant, and malformed encodings fall through to the same rejection path. CPE data maps the exposure to backstage:backstage and @backstage:plugin-proxy-backend before the fixed version, confirming the affected surface is the plugin rather than the core portal framework. The severity assessment (S:C with C:L/I:L/A:N) reflects that the validation gap can redirect a proxied request outside its intended base path - a limited confidentiality/integrity effect scoped to upstreams the operator has already chosen to trust - rather than code execution or full server compromise.

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 6.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 6.4 MEDIUM

Network-reachable with low complexity but needs an authenticated user (PR:L); scope changes (S:C) because the request escapes to a separate target server, yielding limited confidentiality and integrity impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Red Hat 5.4 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Oct 06, 2026 - 22:20 EUVD

DescriptionCVE.org

Backstage is an open framework for building developer portals. Prior to 0.6.17, the @backstage/plugin-proxy-backend package is affected by improper input validation in proxy-backend. An authenticated Backstage user could craft a request URL that causes the proxy-backend to forward the request to a path outside the configured base path on the target server. This is limited to target servers already configured as proxy endpoints and requires Backstage authentication by default. This issue is fixed in version 0.6.17.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Medium
popular CNCF developer-portal platform, common in engineering orgs but not everywhere
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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.3%
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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
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

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2026-106486 CRITICAL
9.9 Oct 06

The Bitbucket pull-request Scaffolder actions in Backstage can be abused by an authenticated user with template-executio

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-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