CVE-2026-29186
Modified Modified - Updated After Analysis

Configuration Bypass in Backstage TechDocs Enables Arbitrary Code Execution

Vulnerability report for CVE-2026-29186, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-03-07

Last updated on: 2026-06-30

Assigner: GitHub, Inc.

Description

Backstage is an open framework for building developer portals. Prior to version 1.14.3, this is a configuration bypass vulnerability that enables arbitrary code execution. The @backstage/plugin-techdocs-node package uses an allowlist to filter dangerous MkDocs configuration keys during the documentation build process. A gap in this allowlist allows attackers to craft an mkdocs.yml that causes arbitrary Python code execution, completely bypassing TechDocs' security controls. This issue has been patched in version 1.14.3.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-03-07
Last Modified
2026-06-30
Generated
2026-07-06
AI Q&A
2026-03-07
EPSS Evaluated
2026-07-05
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
linuxfoundation backstage_plugin-techdocs-node to 1.14.3 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-74 The product constructs all or part of a command, data structure, or record using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify how it is parsed or interpreted when it is sent to a downstream component.
CWE-791 The product receives data from an upstream component, but does not completely filter special elements before sending it to a downstream component.
CWE-434 The product allows the upload or transfer of dangerous file types that are automatically processed within its environment.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

[{'type': 'paragraph', 'content': 'CVE-2026-29186 is a high-severity vulnerability in the @backstage/plugin-techdocs-node package, affecting versions up to 1.14.2. It is a configuration bypass vulnerability in the TechDocs MkDocs plugin, which uses an allowlist to filter dangerous MkDocs configuration keys during the documentation build process.'}, {'type': 'paragraph', 'content': "A gap in this allowlist allows attackers to craft a malicious mkdocs.yml file that triggers arbitrary Python code execution, completely bypassing TechDocs' security controls."}, {'type': 'paragraph', 'content': 'This enables remote attackers with low privileges and no user interaction to execute arbitrary code, impacting components beyond the vulnerable plugin.'}] [1]

Impact Analysis

This vulnerability allows an attacker to execute arbitrary Python code remotely with low privileges and no user interaction.

The impact includes a high confidentiality breach, as attackers can potentially access sensitive information.

Integrity and availability impacts are low, but the scope change means components beyond the vulnerable plugin can be affected.

  • Attackers can bypass security controls in TechDocs.
  • Potential unauthorized access or manipulation of system components.
  • Possible disruption or compromise of documentation build processes.
Compliance Impact

I don't know

Detection Guidance

[{'type': 'paragraph', 'content': 'Detection of this vulnerability involves identifying the presence of the vulnerable @backstage/plugin-techdocs-node package version (up to 1.14.2) and inspecting mkdocs.yml files for malicious configurations that exploit the allowlist gap.'}, {'type': 'paragraph', 'content': 'Suggested detection steps include:'}, {'type': 'list_item', 'content': 'Check the installed version of @backstage/plugin-techdocs-node to see if it is below 1.14.3.'}, {'type': 'list_item', 'content': 'Review mkdocs.yml files in your repositories for suspicious or unusual hook configurations that could trigger arbitrary Python code execution.'}, {'type': 'list_item', 'content': 'Implement manual pull request reviews specifically targeting changes to mkdocs.yml files to detect potentially malicious modifications.'}, {'type': 'paragraph', 'content': 'While no specific commands are provided in the resources, typical commands might include:'}, {'type': 'list_item', 'content': 'npm list @backstage/plugin-techdocs-node'}, {'type': 'list_item', 'content': "grep -r 'hooks' path/to/mkdocs.yml or similar searches to find suspicious hook usage."}] [1]

Mitigation Strategies

Immediate mitigation steps for this vulnerability include:

  • Upgrade the @backstage/plugin-techdocs-node package to version 1.14.3 or later, where the vulnerability is patched.
  • Configure TechDocs to run in Docker mode (runIn: docker) instead of local mode to provide container isolation, although this does not fully mitigate the risk.
  • Restrict repository access to limit who can modify mkdocs.yml files, allowing only trusted contributors to make changes.
  • Implement manual pull request reviews for mkdocs.yml changes to detect and prevent malicious hook configurations.
  • Consider downgrading MkDocs to versions below 1.4.0 (e.g., 1.3.1), which do not support hooks, though this limits access to newer MkDocs features.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-29186. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart