Skip to main content

Backstage TechDocs EUVDEUVD-2026-94070

| CVE-2026-106505 HIGH
Untrusted Search Path (CWE-426)
2026-10-06 security-advisories@github.com GHSA-p75x-jh7p-ppcx
8.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Obtain repository commit access
  2. Delivery
    Commit crafted mkdocs.yml bypassing sanitizer
  3. Exploit
    TechDocs backend generates documentation
  4. Execution
    Arbitrary code execution on backend host
  5. Impact
    Full compromise of TechDocs backend

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V13 - Configuration Search path verification
Exploitation Conditions

Exploitation requires: (1) the attacker holds write/commit access to a source repository that is onboarded into Backstage TechDocs; (2) TechDocs is configured to build documentation, with local generation mode (runIn: local) being the higher-risk deployment - Docker mode (runIn: docker) adds container isolation that reduces but does not eliminate risk per the vendor; and (3) the crafted MkDocs configuration must use keys (e.g., extra_templates) that evade the sanitizer introduced for CVE-2026-25153. Limiting factors: exploitation is gated by repository commit privileges (PR:L, so not anonymous), requires defeating an existing hardened sanitizer (AC:H), and can be further constrained by restricting repo write access to trusted parties and reviewing MkDocs config changes in code review. Code execution occurs automatically during documentation generation with no additional operator interaction (UI:N).

Impact

This is a genuine but conditional priority, not a drive-by critical. The CVSS 3.1 score of 8.5 (vector AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H) reflects full confidentiality/integrity/availability impact with a scope change - consistent with arbitrary code execution escaping the documentation-generation step onto the TechDocs backend host. However, several signals temper the raw score: AC:H and PR:L indicate the attacker must both hold repository commit access AND craft input that defeats the hardened MkDocs sanitizer added for CVE-2026-25153, so this is not a trivial exploit. The multi-source intelligence reinforces a measured posture: EPSS is low at 0.27% (18th percentile), SSVC from CISA rates Exploitation as 'none', Automatable as 'no', and Technical Impact only 'partial', and there is no CISA KEV listing and no public exploit identified. These signals align rather than conflict - they consistently point to a real, high-impact-but-hard-to-automate issue that depends on an insider or compromised contributor with commit rights, rather than widespread opportunistic exploitation. Note one labeling nuance to verify: the assigned CWE-426 (Untrusted Search Path) does not cleanly match a configuration-sanitizer-bypass-to-code-execution pattern (closer to CWE-94/CWE-915-style injection); this does not change risk but should be confirmed with the vendor advisory.

Exploit ScenarioDerived

An attacker with commit rights to a repository onboarded into Backstage TechDocs (e.g., a developer, contractor, or an account compromised via phishing) crafts a malicious mkdocs.yml using configuration keys such as extra_templates that survive the sanitizer bypass. When the TechDocs backend generates documentation for that repo in local mode, the malicious configuration triggers arbitrary code execution on the backend host. No public exploit identified at time of analysis, though the fixing commit and test cases publicly reveal the extra_templates vector.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.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

AnalysisAIv2 – Oct 09, 2026

Arbitrary code execution on the TechDocs backend host is achievable through a sanitizer bypass in the @backstage/plugin-techdocs-node package prior to versions 1.14.6 and 1.15.4, where crafted MkDocs configuration keys (notably extra_templates) evade the allowlist filter originally added to fix CVE-2026-25153. Exploitation is not anonymous: an attacker must hold write/commit access to a repository onboarded into a TechDocs-enabled Backstage instance (PR:L, authenticated), and must defeat an existing hardened sanitizer (AC:H), after which the malicious configuration executes automatically during documentation generation with no further user interaction (UI:N) and can compromise confidentiality, integrity, and availability of the backend host and, per the S:C scope change, potentially beyond it. No public exploit code has been identified at time of analysis, CISA KEV does not list this issue, SSVC rates exploitation as none and automatable as no, and EPSS is low at 0.27% (18th percentile), making this a genuine but conditional priority rather than a drive-by critical. This is a genuine but conditional priority, not a drive-by critical.

Earlier versions of this analysis (1)
v1 Oct 06, 2026 - 22:32 CVSS 7.7

Arbitrary code execution on the TechDocs backend host is achievable through a sanitizer bypass in @backstage/plugin-techdocs-node prior to versions 1.14.6 and 1.15.4, allowing an attacker with commit rights to a TechDocs-onboarded repository to run attacker-controlled code during documentation generation. According to the CVSS vector CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C, exploitation is network-reachable but requires authenticated commit privileges (PR:L) and a non-trivial payload that defeats the hardened MkDocs configuration sanitizer (AC:H); deployments that only serve externally pre-generated documentation are not exposed. There is no public exploit identified at time of analysis, and no CISA KEV entry or EPSS data was supplied, so active exploitation is not confirmed.

RemediationAI

Vendor-released patch: upgrade @backstage/plugin-techdocs-node to 1.15.4 (the vendor-patched version cited in the GHSA advisory) or to 1.14.6 if you remain on the 1.14.x line, and update the Backstage framework to 1.50.5 or 1.54.6 respectively; full details are in advisory GHSA-p75x-jh7p-ppcx and the release notes at https://github.com/backstage/backstage/releases/tag/v1.50.5 and https://github.com/backstage/backstage/releases/tag/v1.54.6, with the underlying fixes visible in commits a7d995f11a5d27f0efbdbe8bb6c21b06988c79c9 and ef92d3d2b76046205c580e7152956514c15640db. If immediate upgrade is not possible, the vendor-recommended compensating controls are: configure TechDocs with runIn: docker instead of runIn: local, accepting the trade-off that container isolation reduces but does not fully eliminate risk and requires a working Docker environment on the backend; restrict repository write access to trusted parties, since exploitation is gated on the ability to commit the malicious MkDocs configuration and this constrains the threat surface at the cost of developer workflow flexibility; and add MkDocs configuration files to mandatory code review so sanitizer-evading keys such as extra_templates are caught before merge. Operators who have explicitly re-enabled extra_templates or other non-default keys via the allowlist extension mechanism should treat those opt-ins as high-risk and remove them, and should monitor backend logs for the new 'DANGEROUS: Allowing additional MkDocs configuration keys beyond the default safe allowlist' warnings introduced by the fix, which indicate an insecure configuration is still in force.

Affected VersionsENISA

backstage 1.51.0-next.0, < 1.54.6
plugin-techdocs-node < 1.14.6
backstage < 1.50.5
plugin-techdocs-node 1.15.0, < 1.15.4

Affected Packages

npm @backstage/plugin-techdocs-node fix: 1.15.4
euvd backstage fix: 1.50.5
euvd backstage_1_51_0_next_0 fix: 1.54.6
euvd plugin_techdocs_node fix: 1.14.6, 1.15.4

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 its TechDocs plugin renders documentation by invoking MkDocs against content stored in source repositories. The vulnerability resides in the @backstage/plugin-techdocs-node package, specifically in the MkDocs YAML sanitizer (sanitizeMkdocsYml in plugins/techdocs-node/src/stages/generate/helpers.ts) that maintains an ALLOWED_MKDOCS_KEYS allowlist of safe configuration keys. CVE-2026-25153 was previously addressed by filtering dangerous keys, but the fix was incomplete: keys such as extra_templates remained reachable or could be re-enabled, allowing an attacker-controlled MkDocs configuration to reintroduce template functionality that results in code/command execution on the TechDocs backend during generation. The root cause maps to CWE-426 (Untrusted Search Path), reflecting that attacker-influenced repository content is resolved and executed by the build process rather than being confined to inert configuration. The public fix commits (a7d995f11a5d27f0efbdbe8bb6c21b06988c79c9 and ef92d3d2b76046205c580e7152956514c15640db) remove extra_templates from the default allowlist and add tests confirming that extra_templates is stripped by default, while forcibly logging a 'DANGEROUS' warning when an operator explicitly opts additional keys back in - indicating the hardening model is now deny-by-default with explicit, auditable opt-in. Deployment context materially affects risk: TechDocs generation in local mode (runIn: local) runs MkDocs directly on the backend host and is the higher-risk configuration, whereas Docker mode (runIn: docker) supplies container isolation that the vendor states reduces but does not eliminate the risk. CPE data enumerates the affected npm package linuxfoundation:backstage_plugin-techdocs-node across version ranges plus the parent linuxfoundation:backstage platform releases (including 1.51.0 with next0-next3 pre-release editions), confirming the impact spans both the plugin and the framework releases that bundle it.

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

Attacker needs repo commit access (PR:L) and must defeat the existing sanitizer (AC:H); automatic doc generation means UI:N, and code escapes to the backend host (S:C) yielding full C/I/A.

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

Primary rating from NVD.

CVSS VectorNVD

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

Lifecycle Timeline

3
CVSS changed
Oct 09, 2026 - 18:07 NVD
7.7 (HIGH) 8.5 (HIGH)
Patch available
Oct 06, 2026 - 23:05 EUVD
CVE Published
Oct 06, 2026 - 22:17 cve.org
HIGH 7.7

DescriptionNVD

Backstage is an open framework for building developer portals. Prior to 1.14.6 and 1.15.4, the @backstage/plugin-techdocs-node package is affected by bypass of mkdocs configuration sanitizer in techdocs backend. Users with the ability to commit changes to a repository that uses TechDocs can circumvent the MkDocs configuration file sanitizer introduced in response to CVE-2026-25153 and execute arbitrary code on the TechDocs backend host during documentation generation. This issue is fixed in versions 1.14.6 and 1.15.4.

Technical POC Analysis

Evidence caveat: the only artifact supplied is advisory GHSA-p75x-jh7p-ppcx.

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 high-severity vulnerability in the Backstage TechDocs backend (@backstage/plugin-techdocs-node) could allow an authenticated user with repository write access to execute arbitrary code on the backend host, potentially compromising data and services. Organizations using TechDocs with onboarded repositories are affected, though exploitation requires defeating a hardened sanitizer and no public exploit has been identified. Leadership should prioritize patching to versions 1.14.6 or 1.15.4 to mitigate risk to backend integrity and availability.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Medium
popular CNCF developer-portal framework, common in enterprises but not universal
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD 🇯🇵JVN NVD CVE.org EPSS Vulnrichment GHSA Vendor 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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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

CVE-2026-106488 HIGH
8.1 Oct 06

Improper authentication in the Backstage @backstage/plugin-auth-backend-module-oidc-provider package prior to 0.4.20 let

Vendor StatusVendor

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