Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain repository commit access
-
DeliveryCommit crafted mkdocs.yml bypassing sanitizer
-
ExploitTechDocs backend generates documentation
-
ExecutionArbitrary code execution on backend host
-
ImpactFull 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – 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)
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
Affected Packages
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
AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
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.
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
3DescriptionNVD
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
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.
Apply vendor patch.
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
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
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.
Path traversal in the Backstage Scaffolder Bitbucket pull-request publish actions allows an authenticated user who can e
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
Improper authentication in the Backstage @backstage/plugin-auth-backend-module-oidc-provider package prior to 0.4.20 let
EUVD-2026-94070
GHSA-p75x-jh7p-ppcx
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB