Skip to main content

Backstage TechDocs EUVDEUVD-2026-94009

| CVE-2026-106490 MEDIUM
Path Traversal (CWE-22)
2026-10-06 GitHub_M GHSA-7mfx-xg57-53c9
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privilege Backstage user
  2. Exploit
    Craft TechDocs static path with traversal sequences
  3. Execution
    Bypass entity-level permission boundary
  4. Impact
    Read restricted docs from Azure Blob Storage

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 ALL of: (1) an authenticated Backstage user account (PR:L); (2) the TechDocs backend configured to use the Azure Blob Storage publisher provider specifically - other publisher backends are not indicated as affected; and (3) entity-level permissions enabled, which is the boundary being bypassed. The limiting factors that reduce realistic risk are the authentication requirement and the Azure-Blob-Storage-only scope. The aggravating factor explicitly noted by the vendor: deployments that intentionally disable the default backend authentication policy 'may have broader exposure.' Affected versions are prior to @backstage/plugin-techdocs-backend 2.2.4.

Impact

This is a moderate-severity, authenticated information-disclosure (path traversal / CWE-22) issue, not an unauthenticated critical. The provided CVSS vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N = 6.5) is internally consistent with the description: network-reachable, low complexity, but requires an authenticated Backstage user (PR:L) and yields confidentiality impact only (read restricted TechDocs), with no integrity or availability impact. No EPSS score, no CISA KEV listing, and no public exploit were provided in the input, so there is no signal of active or probable exploitation; exploitation status is 'no public exploit identified at time of analysis.' SSVC-style reasoning puts this as a low-urgency item: exploitation=none observed, automatable=no (requires valid authentication and a specific storage backend), technical impact=partial (confidentiality only). The real-world risk is further narrowed by two necessary conditions stated in the description - use of the Azure Blob Storage publisher AND entity-level permissions - meaning only a subset of Backstage deployments are affected. The notable aggravating factor is that deployments which intentionally disable the default backend authentication policy 'may have broader exposure,' per the vendor. Net: a legitimately-filed but not high-priority issue for most environments; prioritize patching only where Azure Blob Storage + entity permissions are in use, or where the default backend auth policy is disabled.

Exploit ScenarioDerived

An attacker who already holds a valid (even low-privilege) Backstage account crafts a TechDocs static-content request containing path-traversal sequences (e.g. '../' or encoded Windows separators) to step outside the entity they are authorized to view and read restricted documentation served from Azure Blob Storage. No public exploit code was provided in the input; the fix commit and its added regression tests ('../private/index.html', encoded Windows separators) illustrate the traversal technique. Because the attack is network-based and low-complexity but requires authentication, it is realistic for any insider or compromised user account.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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

Improper input validation in the @backstage/plugin-techdocs-backend static content router (versions prior to 2.2.4) lets an authenticated Backstage user reach TechDocs static files outside the entity they are authorized to view when the Azure Blob Storage publisher provider is configured and entity-level permissions are enabled, resulting in high-confidentiality information disclosure. The flaw is a path traversal (CWE-22) reachable over the network by a low-privileged account, rated CVSS 6.5 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N); Azure-Blob-Storage-only scope and the required authenticated session keep realistic risk moderate. No public exploit code or confirmed active exploitation was identified at time of analysis, and the vendor-released fix is @backstage/plugin-techdocs-backend 2.2.4, published in the Backstage monorepo release v1.54.6.

RemediationAI

Vendor-released patch: @backstage/plugin-techdocs-backend 2.2.4 - upgrade the plugin to 2.2.4 or later, or upgrade the Backstage monorepo to release v1.54.6 or later (https://github.com/backstage/backstage/releases/tag/v1.54.6), and redeploy the TechDocs backend; the advisory (GHSA-7mfx-xg57-53c9) and the fixing commit 40ecc4c2e88b0218125b0a3405d1f6315b321974 document the added path validation. Until the upgrade is applied, actionable compensating controls are: (1) re-enable the default backend authentication policy if it was intentionally disabled, since the vendor states those deployments have broader exposure - the trade-off is that some programmatic or unauthenticated integrations may stop working until they are re-authenticated; (2) verify entity-level permissions (permission.enabled) are turned on so the router's entity confinement is at least in effect, accepting that the traversal bypass itself remains until patched; (3) temporarily switch the TechDocs publisher away from azureBlobStorage to the local, GCS, or S3 publisher, which removes the vulnerable code path at the cost of re-publishing or migrating documentation artifacts; and (4) review TechDocs backend access logs for requests containing '..' or encoded path separators (%5c, %2e) against /static/docs/ endpoints, treating any hits from non-owner entities as evidence of attempted enumeration. Restricting backend network access does not meaningfully reduce risk here because the request originates from an authenticated portal user.

Affected VersionsENISA

plugin-techdocs-backend < 2.2.4
backstage < 1.54.6

Affected Packages

npm @backstage/plugin-techdocs-backend fix: 2.2.4
euvd backstage fix: 1.54.6
euvd plugin_techdocs_backend fix: 2.2.4

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-source framework for building developer portals, and TechDocs is its documentation subsystem: a docs-build step publishes static HTML and asset bundles to a storage publisher, and the techdocs-backend plugin serves those files through an Express router that maps request paths such as /static/docs/<namespace>/<kind>/<entity>/<path> to objects in the publisher backend. The vulnerable code performs insufficient normalization and validation of the requested static content path, so traversal sequences (and, per the upstream regression tests, encoded Windows path separators) can escape the directory prefix associated with the authorized entity. This is a classic CWE-22 path traversal arising from missing canonicalization and prefix enforcement, aggravated here because the Azure Blob Storage publisher resolves blob names in a way that tolerates the manipulated path, whereas other publisher implementations are not indicated as affected. The security boundary that is bypassed is the entity-level permission check: when permission.enabled is true, the router is expected to confine each request to the requesting entity's own documents, and the validation gap permits reading another entity's restricted TechDocs content. The upstream fix commit (40ecc4c2e88b0218125b0a3405d1f6315b321974) adds a dedicated path-validation routine and tests that assert a 404 for /static/docs/default/component/test/../private/index.html and for encoded separators against the Azure Blob Storage publisher. Because the vector is PR:L, exploitation requires a valid Backstage session, and because it is C:H/I:N/A:N, the impact is disclosure-only - no data modification or code execution is involved.

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

Authenticated Backstage user is required (PR:L) over the network (AV:N) with low complexity; impact is reading restricted docs, so C:H and I/A:N.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 06, 2026 - 22:20 EUVD
CVE Published
Oct 06, 2026 - 20:41 cve.org
MEDIUM 6.5

DescriptionCVE.org

Backstage is an open framework for building developer portals. Prior to 2.2.4, the @backstage/plugin-techdocs-backend package is affected by improper input validation in techdocs static content requests. When using the Azure Blob Storage provider, an authenticated Backstage user may be able to read restricted TechDocs content when entity-level permissions are enabled. Deployments that intentionally disable the default backend authentication policy may have broader exposure. This issue is fixed in version 2.2.4.

Threat Intelligence Overview

EPSS Score
0.4%
Top 72% exploitable
Prevalence
Medium
Backstage is a popular CNCF developer portal, common in engineering orgs but not universal
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD 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.4%
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

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

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

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