CVE-2026-106510
HIGH 7.7Backstage 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.
Severe if exploited (CVSS 7.7), but no known exploitation and low modeled probability. Patch on a normal cadence.
Exploitation likelihood
0.5%chance of exploitation in 30 days · 41st percentile
Impact if exploited
7.7CVSS 3.1 · HIGH
- ConfidentialityHigh
- IntegrityLow
- AvailabilityLow
What an attacker needs
- ✓Access: Reachable over the network — no local access needed
- ⚠Privileges: Requires a low-privilege account
- ✓User interaction: No user interaction needed
- ⚠Complexity: Needs a race window or specific setup
✓ lowers the bar for an attacker · ⚠ raises it
Proof of concept
No public PoC is currently catalogued.
Search for new PoCs
Search GitHub now — results may be empty or unverified.
Tracked sources are checked daily for recent CVEs, including PoCs published after the original disclosure. A later release appears after a tracked source lists it and a refresh succeeds.
Data snapshot:
Affected
Vendors Backstage @Backstage Linuxfoundation
Products Backstage Plugin Techdocs Node Backstage Plugin Techdocs Node
Weakness (CWE)
- CWE-183: : Permissive List of Allowed Inputs
- CWE-470: : Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection')
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:L
References and research data (JSON)
Packages and version ranges
Each advisory describes its own package and affected ranges. A boundary applies to that range; it is not a universal upgrade recommendation.
@backstage/plugin-techdocs-node npm
pkg:npm/%40backstage/plugin-techdocs-node
SEMVER range- All earlier versions (introduced 0)
- Fixed boundary (excluded): 1.15.4
GitHub Advisory Database · GHSA-4488-j8vj-vqqv · Updated 2026-10-07T18:15:10.717894363ZAdditional upstream package constraints
{ "database": { "source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-4488-j8vj-vqqv/GHSA-4488-j8vj-vqqv.json" } }
Vendor product assessments
rhdh/rhdh-hub-rhel9 as a component of Red Hat Developer Hub · known affected
Vendor assessment for this product only.
pkg:oci/rhdh-hub-rhel9?repository_url=registry.redhat.io/rhdh/rhdh-hub-rhel9
- workaround: To mitigate this vulnerability, implement the following operational and configuration controls: 1. Isolate documentation builds: Configure TechDocs to delegate builds to an external pipeline rather than executing them locally on the portal host. In `app-config.yaml`, set: ```yaml techdocs: builder: 'external' ``` Warning: Applying configuration changes to `app-config.yaml` requires restarting or redeploying the service to take effect. Delegating to external builders requires generating documentation through external CI/CD pipelines or dedicated build runners. 2. Restrict catalog registration: Restrict catalog registration privileges to authorized administrators through role-based access control (RBAC) and permission policies, preventing untrusted users from registering components with custom documentation paths. 3. Audit catalog repositories: Inspect existing entity repositories and their `mkdocs.yml` files for untrusted or unexpected `markdown_extensions` declarations before documentation builds are processed.
- none available: Affected
ansible-automation-platform/automation-portal as a component of Self-service automation portal 2 · known affected
Vendor assessment for this product only.
pkg:oci/automation-portal?repository_url=registry.redhat.io/ansible-automation-platform/automation-portal
- workaround: To mitigate this vulnerability, implement the following operational and configuration controls: 1. Isolate documentation builds: Configure TechDocs to delegate builds to an external pipeline rather than executing them locally on the portal host. In `app-config.yaml`, set: ```yaml techdocs: builder: 'external' ``` Warning: Applying configuration changes to `app-config.yaml` requires restarting or redeploying the service to take effect. Delegating to external builders requires generating documentation through external CI/CD pipelines or dedicated build runners. 2. Restrict catalog registration: Restrict catalog registration privileges to authorized administrators through role-based access control (RBAC) and permission policies, preventing untrusted users from registering components with custom documentation paths. 3. Audit catalog repositories: Inspect existing entity repositories and their `mkdocs.yml` files for untrusted or unexpected `markdown_extensions` declarations before documentation builds are processed.
- none available: Affected
ansible-automation-platform/bootc-automation-portal-rhel9 as a component of Self-service automation portal 2 · known affected
Vendor assessment for this product only.
pkg:oci/bootc-automation-portal-rhel9?repository_url=registry.redhat.io/ansible-automation-platform/bootc-automation-portal-rhel9
- workaround: To mitigate this vulnerability, implement the following operational and configuration controls: 1. Isolate documentation builds: Configure TechDocs to delegate builds to an external pipeline rather than executing them locally on the portal host. In `app-config.yaml`, set: ```yaml techdocs: builder: 'external' ``` Warning: Applying configuration changes to `app-config.yaml` requires restarting or redeploying the service to take effect. Delegating to external builders requires generating documentation through external CI/CD pipelines or dedicated build runners. 2. Restrict catalog registration: Restrict catalog registration privileges to authorized administrators through role-based access control (RBAC) and permission policies, preventing untrusted users from registering components with custom documentation paths. 3. Audit catalog repositories: Inspect existing entity repositories and their `mkdocs.yml` files for untrusted or unexpected `markdown_extensions` declarations before documentation builds are processed.
- none available: Affected
Known Affected Software Configurations
| Vendor | Product | Version range |
|---|---|---|
| Linuxfoundation | Backstage Plugin Techdocs Node | < 1.14.6 |
| Linuxfoundation | Backstage Plugin Techdocs Node | ≥ 1.15.0 and < 1.15.4 |
| Linuxfoundation | Backstage | < 1.50.5 |
| Linuxfoundation | Backstage | ≥ 1.51.1 and < 1.54.6 |
| Linuxfoundation | Backstage | 1.51.0 |
| Linuxfoundation | Backstage | 1.51.0 |
| Linuxfoundation | Backstage | 1.51.0 |
| Linuxfoundation | Backstage | 1.51.0 |
| Linuxfoundation | Backstage | 1.51.0 |
All CVSS metrics
- HIGH 7.7 v3.1 · CNA Primary
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:L - HIGH 7.7 v3.1 · NVD Secondary
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:L
References
Patches & mitigations
- https://github.com/backstage/backstage/security/advisories/GHSA-4488-j8vj-vqqv CVE record · GitHub_M · Updated 2026-10-07T14:36:53.929Z
NVD · CVE-2026-106510 · Updated 2026-10-13T14:25:46.490
GitHub Advisory Database · GHSA-4488-j8vj-vqqv
GitHub Advisory Database · GHSA-4488-j8vj-vqqv · Updated 2026-10-07T18:15:10.717894363Z
Red Hat · CVE-2026-106510 · Updated 2026-10-08T06:03:33+00:00 - https://github.com/backstage/backstage/commit/02cd7cdbb18b687446277b5602adaee7f1d53cbb CVE record · GitHub_M · Updated 2026-10-07T14:36:53.929Z
NVD · CVE-2026-106510 · Updated 2026-10-13T14:25:46.490
GitHub Advisory Database · GHSA-4488-j8vj-vqqv
GitHub Advisory Database · GHSA-4488-j8vj-vqqv · Updated 2026-10-07T18:15:10.717894363Z
Red Hat · CVE-2026-106510 · Updated 2026-10-08T06:03:33+00:00 - https://github.com/backstage/backstage/commit/a900a9953c8f7ad3ba1906d1d257725a9996cc9d CVE record · GitHub_M · Updated 2026-10-07T14:36:53.929Z
NVD · CVE-2026-106510 · Updated 2026-10-13T14:25:46.490
GitHub Advisory Database · GHSA-4488-j8vj-vqqv
GitHub Advisory Database · GHSA-4488-j8vj-vqqv · Updated 2026-10-07T18:15:10.717894363Z
Red Hat · CVE-2026-106510 · Updated 2026-10-08T06:03:33+00:00 - https://github.com/backstage/backstage/releases/tag/v1.50.5 CVE record · GitHub_M · Updated 2026-10-07T14:36:53.929Z
NVD · CVE-2026-106510 · Updated 2026-10-13T14:25:46.490
GitHub Advisory Database · GHSA-4488-j8vj-vqqv
GitHub Advisory Database · GHSA-4488-j8vj-vqqv · Updated 2026-10-07T18:15:10.717894363Z
Red Hat · CVE-2026-106510 · Updated 2026-10-08T06:03:33+00:00 - https://github.com/backstage/backstage/releases/tag/v1.54.6 CVE record · GitHub_M · Updated 2026-10-07T14:36:53.929Z
NVD · CVE-2026-106510 · Updated 2026-10-13T14:25:46.490
GitHub Advisory Database · GHSA-4488-j8vj-vqqv
GitHub Advisory Database · GHSA-4488-j8vj-vqqv · Updated 2026-10-07T18:15:10.717894363Z
Red Hat · CVE-2026-106510 · Updated 2026-10-08T06:03:33+00:00
Advisories
- https://osv.dev/vulnerability/GHSA-4488-j8vj-vqqv GitHub Advisory Database · GHSA-4488-j8vj-vqqv
GitHub Advisory Database · GHSA-4488-j8vj-vqqv · Updated 2026-10-07T18:15:10.717894363Z - https://nvd.nist.gov/vuln/detail/CVE-2026-106510 GitHub Advisory Database · GHSA-4488-j8vj-vqqv
GitHub Advisory Database · GHSA-4488-j8vj-vqqv · Updated 2026-10-07T18:15:10.717894363Z
Red Hat · CVE-2026-106510 · Updated 2026-10-08T06:03:33+00:00 - https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-106510.json Red Hat · CVE-2026-106510 · Updated 2026-10-08T06:03:33+00:00
- https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-94369 EUVD · EUVD-2026-94369
Technical & other
- https://github.com/backstage/backstage GitHub Advisory Database · GHSA-4488-j8vj-vqqv
GitHub Advisory Database · GHSA-4488-j8vj-vqqv · Updated 2026-10-07T18:15:10.717894363Z - https://access.redhat.com/security/cve/CVE-2026-106510 Red Hat · CVE-2026-106510 · Updated 2026-10-08T06:03:33+00:00
- https://bugzilla.redhat.com/show_bug.cgi?id=2547473 Red Hat · CVE-2026-106510 · Updated 2026-10-08T06:03:33+00:00
- https://www.cve.org/CVERecord?id=CVE-2026-106510 Red Hat · CVE-2026-106510 · Updated 2026-10-08T06:03:33+00:00