Skip to main content

Backstage EUVDEUVD-2026-94052

| CVE-2026-106496 MEDIUM
Path Traversal (CWE-22)
2026-10-06 security-advisories@github.com GHSA-pcmq-25r3-5w9v
6.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to catalog backend
  2. Exploit
    Register Location entity inheriting disallowed file type
  3. Execution
    Bypass allowedLocationTypes enforcement during processing
  4. Impact
    Trigger unintended backend host file access

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

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

Exploitation Conditions

Exploitation requires the catalog backend to be configured with an allowedLocationTypes restriction list AND an attacker with authenticated permission to register or influence a Location entity. The specific flaw: the pre-patch orchestrator only enforced the allowed-type check when the processed location type differed from the parent location's type (type !== context.location.type), so a disallowed type (e.g. 'file') that was inherited from the parent/origin location bypassed enforcement and was processed, enabling file access on the backend host. Limiting factors: non-default configuration (allowedLocationTypes must be set), authenticated access (PR:L), and high complexity (AC:H) due to the inheritance-matching edge case; default deployments without allowedLocationTypes restrictions, or without untrusted location-registration access, are not meaningfully exposed.

Impact

This is a genuinely low-priority issue despite the network attack vector. The CNA (GitHub) CVSS:3.1 vector (AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N) scores only 3.1 (Low), and the signals are consistent with that: exploitation requires authenticated access (PR:L), carries high attack complexity (AC:H) because it depends on a non-default allowedLocationTypes configuration plus a specific type-inheritance edge case, and yields only limited impact. No EPSS score, CISA KEV listing, or public POC is present in the provided data - no public exploit identified at time of analysis - so there is no evidence of real-world exploitation pressure. One conflict worth flagging: the description states the flaw leads to 'unintended file access on the backend host,' which reads like a confidentiality (file read) impact, yet the vendor vector sets C:N and instead assigns I:L - verify with the vendor advisory whether the realistic impact is reading backend files (confidentiality) or catalog data integrity. Overall this is a legitimately low-severity hardening fix, not an urgent priority.

Exploit ScenarioDerived

An authenticated user able to register catalog locations submits a Location entity whose type (e.g. 'file:') is normally excluded by the configured allowedLocationTypes list, but is crafted so the type is inherited from the parent/origin location and therefore skips the enforcement check. The catalog backend then processes the location and reads an unintended file from the backend host filesystem. No public exploit is identified; attack complexity is high and a non-default allowedLocationTypes configuration is required.

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

Backstage's catalog backend (the @backstage/plugin-catalog-backend package) prior to 3.9.1 enforces its allowedLocationTypes restriction inconsistently, letting a disallowed location type be processed when it is inherited from the parent/origin location rather than declared directly. An authenticated user who can register or influence a Location entity in a deployment that has configured an allowedLocationTypes list can therefore trigger the backend to resolve a location type it was supposed to reject, potentially reading files on the backend host. This is a low-severity issue: it requires non-default configuration plus authenticated access and a specific inheritance edge case, and no public exploit code has been identified at time of analysis; the fix is in @backstage/plugin-catalog-backend 3.9.1 (Backstage release v1.54.6).

RemediationAI

Vendor-released patch: upgrade @backstage/plugin-catalog-backend to 3.9.1 or later, which corresponds to the Backstage release v1.54.6; the fix is available in commit 23774b61560d851bc69cd6a77d12561b24d11afd and is described in advisory GHSA-pcmq-25r3-5w9v (https://github.com/backstage/backstage/security/advisories/GHSA-pcmq-25r3-5w9v). If an immediate upgrade is not possible, the most effective compensating control is to restrict who can create or modify Location entities (for example by tightening Backstage permission policy rules around catalog-entity creation and location registration) so untrusted users cannot supply or influence a Location with an inherited 'file' or other disallowed type; the trade-off is that legitimate self-service catalog onboarding by those users is blocked. A second option is to disable or remove host-side location processors such as the file discovery/reading processor and rely on read-only static locations or SCM-backed 'url' locations only, accepting the loss of dynamic file-based catalog ingestion. Where only trusted administrators can register locations, or where allowedLocationTypes is not configured at all, exposure to this particular bypass is minimal and remediation can follow the normal upgrade cycle.

Affected VersionsENISA

backstage < 1.54.6
plugin-catalog-backend < 3.9.1

Affected Packages

npm @backstage/plugin-catalog-backend fix: 3.9.1
euvd backstage fix: 1.54.6
euvd plugin_catalog_backend fix: 3.9.1

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

Backstage is an open framework for building developer portals, and its catalog backend ingests entities from configured 'locations' via processors. Administrators can constrain which location types the backend will accept using the allowedLocationTypes option, which CatalogBuilder passes into DefaultCatalogProcessingOrchestrator. The root cause is classified as CWE-22 (Improper Limitation of a Pathname to a Restricted Directory, i.e. path traversal) because the location-type allowlist is what stands between a user-supplied location and host-side file resolution (for example a 'file:' location). In the vulnerable orchestrator, the guard was written as a conditional that only ran when the type being processed differed from the parent location's type (type !== context.location.type); when a disallowed type such as 'file' was inherited from the parent/origin location, the condition evaluated false and the allowlist check was skipped entirely, so the processor proceeded to readLocation. The upstream commit 23774b6 adds an explicit allowedLocationTypes check that rejects any type not in the configured list unless it is inherited from an already-accepted context location, and emits a processing inputError instead of continuing. The attack surface is narrow: the check only exists when allowedLocationTypes is explicitly set (a non-default hardening configuration), the attacker must be able to supply or influence a Location entity, and the bypass depends on the inheritance case, which is why the assessed vector is AV:N/AC:H/PR:L/UI:N/S:U with a low confidentiality impact. No CPE strings were supplied with this CVE.

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

NVD PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 3.1 LOW

Authenticated location registration gives PR:L; dependence on non-default allowedLocationTypes config plus the type-inheritance bypass gives AC:H; 'unintended file access' is treated as a limited local-file read, so C:L.

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

Primary rating from NVD.

CVSS VectorNVD

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

Lifecycle Timeline

3
Severity Changed
Oct 16, 2026 - 15:38 NVD
LOW MEDIUM
CVSS changed
Oct 16, 2026 - 15:38 NVD
3.1 (LOW) 6.5 (MEDIUM)
Patch available
Oct 06, 2026 - 23:05 EUVD

DescriptionNVD

Backstage is an open framework for building developer portals. Prior to 3.9.1, the @backstage/plugin-catalog-backend package is affected by inconsistent enforcement of allowed location types during catalog processing. Under certain configurations, the catalog backend could process location types that were not intended to be allowed, potentially leading to unintended file access on the backend host. This issue is fixed in version 3.9.1.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 29 npm packages depend on @backstage/plugin-catalog-backend (14 direct, 15 indirect)

Ecosystem-wide dependent count for version 3.9.1.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Medium
popular CNCF developer-portal framework, mostly internal non-internet-facing deployments
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD 🇯🇵JVN NVD CVE.org EPSS Vulnrichment GHSA 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· derived
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
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

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

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

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