Read the docs

Remote code execution in Backstage TechDocs via crafted mkdocs.yml

Priority LOW 34CWE-183Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
High
Impact type
—
Confidentiality · integrity · availability
High · Low · Low
Fix status
Partial Red Hat: 2 without a fix

Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat.

Summary

The @backstage/plugin-techdocs-node package before 1.14.6, and from 1.15.0 before 1.15.4, is affected. Crafted markdown_extensions values in a TechDocs mkdocs.yml file lead to unsafe selection of code (CWE-470). An authenticated user who can register catalog entities can run arbitrary OS commands on the TechDocs build host when the docs are built. Backstage releases before 1.50.5, and from 1.51.0-next.0 before 1.54.6, are also listed as affected.

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.6, the @backstage/plugin-techdocs-node package is affected by remote code execution via crafted markdown_extensions in techdocs mkdocs.yml. An authenticated user who can register catalog entities can provide a crafted mkdocs.yml causing arbitrary OS command execution on the TechDocs build host when the docs are built. This issue is fixed in versions 1.14.6 and 1.15.4.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00479 41st percentileScored 2026-11-07
Fix Partial backstage (backstage): 1.50.5, 1.54.6plugin-techdocs-node (@backstage): 1.14.6, 1.15.4+1 more productRed Hat: 2 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
backstagebackstagebefore 1.50.5; 1.51.0-next.0 to before 1.54.61.50.5, 1.54.6Patch availableCNA
backstageplugin-techdocs-nodebefore 1.14.6; 1.15.0 to before 1.15.41.14.6, 1.15.4Patch availableCNA
—@backstage/plugin-techdocs-node (npm)before 1.15.41.15.4Patch availableGHSA-4488-j8vj-vqqv
  • backstage Vendorbackstage Affected before 1.50.5; 1.51.0-next.0 to before 1.54.6 Fixed in 1.50.5, 1.54.6 Patch available CNA
  • plugin-techdocs-node Vendorbackstage Affected before 1.14.6; 1.15.0 to before 1.15.4 Fixed in 1.14.6, 1.15.4 Patch available CNA
  • @backstage/plugin-techdocs-node (npm) Vendor— Affected before 1.15.4 Fixed in 1.15.4 Patch available GHSA-4488-j8vj-vqqv

CPE configurations NVD · 7

CPEVersionsRoleVendor
cpe:2.3:a:linuxfoundation:backstage_plugin-techdocs-node:*:*:*:*:*:*:*:*before 1.14.6; 1.15.0 to before 1.15.4Vulnerablebackstage
cpe:2.3:a:linuxfoundation:backstage:*:*:*:*:*:*:*:*before 1.50.5; 1.51.1 to before 1.54.6Vulnerablebackstage
cpe:2.3:a:linuxfoundation:backstage:1.51.0:-:*:*:*:*:*:*1.51.0Vulnerablebackstage
cpe:2.3:a:linuxfoundation:backstage:1.51.0:next0:*:*:*:*:*:*1.51.0 next0Vulnerablebackstage
cpe:2.3:a:linuxfoundation:backstage:1.51.0:next1:*:*:*:*:*:*1.51.0 next1Vulnerablebackstage
cpe:2.3:a:linuxfoundation:backstage:1.51.0:next2:*:*:*:*:*:*1.51.0 next2Vulnerablebackstage
cpe:2.3:a:linuxfoundation:backstage:1.51.0:next3:*:*:*:*:*:*1.51.0 next3Vulnerablebackstage
  • cpe:2.3:a:linuxfoundation:backstage_plugin-techdocs-node:*:*:*:*:*:*:*:* Versions before 1.14.6; 1.15.0 to before 1.15.4 Vulnerable ·backstage
  • cpe:2.3:a:linuxfoundation:backstage:*:*:*:*:*:*:*:* Versions before 1.50.5; 1.51.1 to before 1.54.6 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

Remediation

Upgrade @backstage/plugin-techdocs-node to 1.14.6 or 1.15.4. The sources list no fixed version for backstage. Red Hat's plan for Red Hat Developer Hub 1 and Self-service automation portal 2 is none available.

Written with Claude Haiku 5.5 from the sources below · 2026-10-29

  • Fix · CNA backstage (backstage) Fixed in 1.50.5, 1.54.6
  • Fix · CNA plugin-techdocs-node (@backstage) Fixed in 1.14.6, 1.15.4
  • Fix · GHSA-4488-j8vj-vqqv @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 →

ProductStatusPlan or fix
Red Hat Developer Hub 1AffectedNo fix yet
Self-service automation portal 2AffectedNo fix yet

Timeline

  1. 2026-10-07 Threatist record created from CVE-2026-106510
  2. 2026-10-07 CISA SSVC decision points changed
  3. 2026-10-07 Priority changed: MEDIUM → LOW
  4. 2026-10-07 Alias added: GHSA-4488-j8vj-vqqv
  5. 2026-10-07 Fix available: npm/@backstage/[email protected] · GHSA-4488-j8vj-vqqv
  6. 2026-10-07 CVSS score added · GHSA-4488-j8vj-vqqv
  7. 2026-10-07 Weakness changed · GHSA-4488-j8vj-vqqv
  8. 2026-10-07 7 new references · GHSA-4488-j8vj-vqqv
  9. 2026-10-08 Affected versions changed · Red Hat
  10. 2026-10-08 CVSS score added · Red Hat
  11. 2026-10-27 Affected versions changed · Red Hat

References

  • 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-69165 Backstage TechDocs config flaw allows code execution CVSS 3.1HIGH 8.8
  • TI-2026-69083 Code injection via MkDocs theme configuration in Backstage TechDocs CVSS 3.1HIGH 8.8
See all 52 →

Sources