REDHAT-BUG-2435576: High severity npm/@backstage/plugin-techdocs-node vulnerability
Backstage is an open framework for building developer portals, and @backstage/plugin-techdocs-node provides common node.js functionalities for TechDocs. In versions of @backstage/plugin-techdocs-node prior to 1.13.11 and 1.14.1, when TechDocs is configured with runIn: local, a malicious actor who can submit or modify a repository's mkdocs.yml file can execute arbitrary Python code on the TechDocs build server via MkDocs hooks configuration. @backstage/plugin-techdocs-node versions 1.13.11 and 1.14.1 contain a fix. The fix introduces an allowlist of supported MkDocs configuration keys. Unsupported configuration keys (including hooks) are now removed from mkdocs.yml before running the generator, with a warning logged to indicate which keys were removed. Users of @techdocs/cli should also upgrade to the latest version, which includes the fixed @backstage/plugin-techdocs-node dependency. Some workarounds are available. Configure TechDocs with runIn: docker instead of runIn: local to provide container isolation, though it does not fully mitigate the risk. Limit who can modify mkdocs.yml files in repositories that TechDocs processes; only allow trusted contributors. Implement PR review requirements for changes to mkdocs.yml files to detect malicious hooks configurations before they are merged. Use MkDocs < 1.4.0 (e.g., 1.3.1) which does not support hooks. Note: This may limit access to newer MkDocs features. Building documentation in CI/CD pipelines using @techdocs/cli does not mitigate this vulnerability, as the CLI uses the same vulnerable @backstage/plugin-techdocs-node package.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
@backstage/plugin-techdocs-nodeto a version that resolves this vulnerability.Fixed in 1.13.11 - Upgrade
Upgrade
@backstage/plugin-techdocs-nodeto a version that resolves this vulnerability.Fixed in 1.14.1 - Configuration
Configure TechDocs to use `runIn: docker` instead of `runIn: local` to provide container isolation (does not fully mitigate the risk).
TechDocs configuration runIn = docker - Configuration
Implement PR review requirements for changes to `mkdocs.yml` files to detect malicious `hooks` configurations before they are merged.
TechDocs CI/CD repo governance PR review requirements for mkdocs.yml = enforced - Compensating control
Limit who can modify `mkdocs.yml` files in repositories that TechDocs processes to trusted contributors only (note: may limit access to newer MkDocs features).
- Compensating control
As a workaround, use MkDocs < 1.4.0 (e.g., 1.3.1) which does not support hooks.
Event History
Frequently Asked Questions
What is the severity of REDHAT-BUG-2435576?
The severity of REDHAT-BUG-2435576 is classified as high, with a score of 7.
How do I fix REDHAT-BUG-2435576?
To fix REDHAT-BUG-2435576, update @backstage/plugin-techdocs-node to version 1.13.11 or 1.14.1 or later.
What impact does REDHAT-BUG-2435576 have on my system?
REDHAT-BUG-2435576 allows a malicious actor to exploit the TechDocs functionality when configured improperly.
Which versions of @backstage/plugin-techdocs-node are affected by REDHAT-BUG-2435576?
Versions of @backstage/plugin-techdocs-node prior to 1.13.11 and 1.14.1 are affected by REDHAT-BUG-2435576.
Is REDHAT-BUG-2435576 related to any other software?
Yes, REDHAT-BUG-2435576 is related to npm/@techdocs/cli in addition to @backstage/plugin-techdocs-node.