Backstage TechDocs config flaw allows code execution
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Partial Red Hat: 2 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-502.
Summary
The @backstage/plugin-techdocs-node package improperly validates mapping-style markdown_extensions configuration, a deserialization flaw (CWE-502). An authenticated attacker who can register or influence an SCM-backed documentation source can bypass TechDocs sanitization, get Python objects imported and instantiated, and run arbitrary code. Impact is greatest when documentation generation runs with backend credentials, filesystem access, or internal network access.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
Backstage is an open framework for building developer portals. Prior to 1.14.8, 1.15.6, and 2.0.1, the @backstage/plugin-techdocs-node package improperly validated mapping-style markdown_extensions configuration. An authenticated attacker who can register or influence an SCM-backed documentation source may bypass TechDocs sanitization and cause Python objects to be imported and instantiated in the generator runtime, leading to arbitrary code execution. Earlier fixes in versions 1.14.6 and 1.15.4 did not fully address the supported mapping representation of markdown_extensions. Impact is greatest when documentation generation runs with backend credentials, filesystem access, or internal network access. This issue is fixed in versions 1.14.8, 1.15.6, and 2.0.1.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| backstage | backstage | before 1.50.7; 1.51.0-next.0 to before 1.54.9; 1.55.0-next.0 to before 1.55.2 | 1.50.7, 1.54.9, 1.55.2 | Patch available | CNA |
| backstage | plugin-techdocs-node | before 1.14.8; 1.15.0 to before 1.15.6; 2.0.0 to before 2.0.1 | 1.14.8, 1.15.6, 2.0.1 | Patch available | CNA |
| — | @backstage/plugin-techdocs-node (npm) | before 1.15.4 | 1.15.4 | Patch available | GHSA-qmw3-745m-w99g |
- backstage Vendorbackstage Affected before 1.50.7; 1.51.0-next.0 to before 1.54.9; 1.55.0-next.0 to before 1.55.2 Fixed in 1.50.7, 1.54.9, 1.55.2 Patch available CNA
- plugin-techdocs-node Vendorbackstage Affected before 1.14.8; 1.15.0 to before 1.15.6; 2.0.0 to before 2.0.1 Fixed in 1.14.8, 1.15.6, 2.0.1 Patch available CNA
- @backstage/plugin-techdocs-node (npm) Vendor— Affected before 1.15.4 Fixed in 1.15.4 Patch available GHSA-qmw3-745m-w99g
CPE configurations NVD · 11
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:linuxfoundation:backstage_plugin-techdocs-node:*:*:*:*:*:*:*:* | before 1.14.8; 1.15.0 to before 1.15.6; 2.0.0 to before 2.0.1 | Vulnerable | backstage |
| cpe:2.3:a:linuxfoundation:backstage:*:*:*:*:*:*:*:* | before 1.50.7; 1.51.1 to before 1.54.8; 1.55.1 to before 1.55.2 | Vulnerable | backstage |
| cpe:2.3:a:linuxfoundation:backstage:1.51.0:-:*:*:*:*:*:* | 1.51.0 | Vulnerable | backstage |
| cpe:2.3:a:linuxfoundation:backstage:1.51.0:next0:*:*:*:*:*:* | 1.51.0 next0 | Vulnerable | backstage |
| cpe:2.3:a:linuxfoundation:backstage:1.51.0:next1:*:*:*:*:*:* | 1.51.0 next1 | Vulnerable | backstage |
| cpe:2.3:a:linuxfoundation:backstage:1.51.0:next2:*:*:*:*:*:* | 1.51.0 next2 | Vulnerable | backstage |
| cpe:2.3:a:linuxfoundation:backstage:1.51.0:next3:*:*:*:*:*:* | 1.51.0 next3 | Vulnerable | backstage |
| cpe:2.3:a:linuxfoundation:backstage:1.55.0:-:*:*:*:*:*:* | 1.55.0 | Vulnerable | backstage |
| cpe:2.3:a:linuxfoundation:backstage:1.55.0:next0:*:*:*:*:*:* | 1.55.0 next0 | Vulnerable | backstage |
| cpe:2.3:a:linuxfoundation:backstage:1.55.0:next1:*:*:*:*:*:* | 1.55.0 next1 | Vulnerable | backstage |
- cpe:2.3:a:linuxfoundation:backstage_plugin-techdocs-node:*:*:*:*:*:*:*:* Versions before 1.14.8; 1.15.0 to before 1.15.6; 2.0.0 to before 2.0.1 Vulnerable ·backstage
- cpe:2.3:a:linuxfoundation:backstage:*:*:*:*:*:*:*:* Versions before 1.50.7; 1.51.1 to before 1.54.8; 1.55.1 to before 1.55.2 Vulnerable ·backstage
- cpe:2.3:a:linuxfoundation:backstage:1.51.0:-:*:*:*:*:*:* Versions 1.51.0 Vulnerable ·backstage
- cpe:2.3:a:linuxfoundation:backstage:1.51.0:next0:*:*:*:*:*:* Versions 1.51.0 next0 Vulnerable ·backstage
- cpe:2.3:a:linuxfoundation:backstage:1.51.0:next1:*:*:*:*:*:* Versions 1.51.0 next1 Vulnerable ·backstage
- cpe:2.3:a:linuxfoundation:backstage:1.51.0:next2:*:*:*:*:*:* Versions 1.51.0 next2 Vulnerable ·backstage
- cpe:2.3:a:linuxfoundation:backstage:1.51.0:next3:*:*:*:*:*:* Versions 1.51.0 next3 Vulnerable ·backstage
- cpe:2.3:a:linuxfoundation:backstage:1.55.0:-:*:*:*:*:*:* Versions 1.55.0 Vulnerable ·backstage
- cpe:2.3:a:linuxfoundation:backstage:1.55.0:next0:*:*:*:*:*:* Versions 1.55.0 next0 Vulnerable ·backstage
- cpe:2.3:a:linuxfoundation:backstage:1.55.0:next1:*:*:*:*:*:* Versions 1.55.0 next1 Vulnerable ·backstage
Remediation
Upgrade @backstage/plugin-techdocs-node to 1.14.8, 1.15.6, or 2.0.1. The sources list no fixed version for backstage. Red Hat lists no plan available for Red Hat Developer Hub 1 and Self-service automation portal 2.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
- Fix · CNA backstage (backstage) Fixed in 1.50.7, 1.54.9, 1.55.2
- Fix · CNA plugin-techdocs-node (@backstage) Fixed in 1.14.8, 1.15.6, 2.0.1
- Fix · GHSA-qmw3-745m-w99g @backstage/plugin-techdocs-node (npm) Fixed in 1.15.4 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Developer Hub 1 | Affected | No fix yet |
| Self-service automation portal 2 | Affected | No fix yet |
Timeline
- 2026-10-07 Threatist record created from CVE-2026-106558
- 2026-10-07 Alias added: GHSA-qmw3-745m-w99g
- 2026-10-07 Fix available: npm/@backstage/[email protected] · GHSA-qmw3-745m-w99g
- 2026-10-07 CVSS score added · GHSA-qmw3-745m-w99g
- 2026-10-07 Weakness changed · GHSA-qmw3-745m-w99g
- 2026-10-07 9 new references · GHSA-qmw3-745m-w99g
- 2026-10-09 Priority changed: MEDIUM → LOW
- 2026-10-10 CISA SSVC decision points changed
- 2026-10-10 Priority changed: LOW → MEDIUM
- 2026-10-21 Affected versions changed · Red Hat
- 2026-10-21 CVSS score added · Red Hat
- 2026-10-27 Affected versions changed · Red Hat
References
Patch 6
- https://github.com/backstage/backstage/commit/32723a0fe4e12ed80535fc65d5331765c55aa91b
- https://github.com/backstage/backstage/commit/944edb51c8524d3664b18f2d57ba101b1c93b709
- https://github.com/backstage/backstage/commit/f18e9abcc6051491862b15e4fc60e69f8d52310c
- https://github.com/backstage/backstage/releases/tag/v1.50.7
- https://github.com/backstage/backstage/releases/tag/v1.54.9
- https://github.com/backstage/backstage/releases/tag/v1.55.2
Advisory 2
More Backstage vulnerabilities
- TI-2023-17988 Insecure sandbox in Backstage Scaffolder plugin CVSS 3.1CRITICAL 9.9
- TI-2026-69075 Sensitive information exposure in Backstage Scaffolder CVSS 3.1CRITICAL 9.6
- TI-2026-69061 Path traversal in Backstage Bitbucket pull-request scaffolder actions CVSS 3.1CRITICAL 9.9
- TI-2026-60083 Backstage: Improper input validation in TechDocs MkDocs configuration CVSS 3.1HIGH 8.8
- TI-2026-69083 Code injection via MkDocs theme configuration in Backstage TechDocs CVSS 3.1HIGH 8.8
- TI-2026-69074 Race condition in Backstage scaffolder backend task handling CVSS 3.1HIGH 8.5
Sources
- CVE-2026-106558 · CVE Program
- CVE-2026-106558 · NVD
- FIRST EPSS
- GHSA-qmw3-745m-w99g · GitHub Advisory Database · CC BY 4.0
- CVE-2026-106558 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences