@backstage/plugin-techdocs-node vulnerable to possible Path Traversal in TechDocs Local Generator
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, a path traversal vulnerability in the TechDocs local generator allows attackers to read arbitrary files from the host filesystem when Backstage is configured with `techdocs.generator.runIn: local`. When processing documentation from untrusted sources, symlinks within the docs directory are followed by MkDocs during the build process. File contents are embedded into generated HTML and exposed to users who can view the documentation. This vulnerability is fixed in` @backstage/plugin-techdocs-node` versions 1.13.11 and 1.14.1. Some workarounds are available. Switch to `runIn: docker` in `app-config.yaml` and/or restrict write access to TechDocs source repositories to trusted users only.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-25152
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 14:04 UTC · Revision 1
Source evidence
@backstage/plugin-techdocs-node vulnerable to possible Path Traversal in TechDocs Local Generator
core-osv · Original sourcePublished 30 Jan 2026, 21:51 UTC
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, a path traversal vulnerability in the TechDocs local generator allows attackers to read arbitrary files from the host filesystem when Backstage is configured with `techdocs.generator.runIn: local`. When processing documentation from untrusted sources, symlinks within the docs directory are followed by MkDocs during the build process. File contents are embedded into generated HTML and exposed to users who can view the documentation. This vulnerability is fixed in` @backstage/plugin-techdocs-node` versions 1.13.11 and 1.14.1. Some workarounds are available. Switch to `runIn: docker` in `app-config.yaml` and/or restrict write access to TechDocs source repositories to trusted users only.
osv:CVE-2026-25152
Complete source record
{
"id": "594fd9b7eae8c2787a69035834eedef560f24e24f36891b93d397453a8c02c4e",
"url": "https://osv.dev/vulnerability/CVE-2026-25152",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "@backstage/plugin-techdocs-node vulnerable to possible Path Traversal in TechDocs Local Generator",
"summary": "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, a path traversal vulnerability in the TechDocs local generator allows attackers to read arbitrary files from the host filesystem when Backstage is configured with `techdocs.generator.runIn: local`. When processing documentation from untrusted sources, symlinks within the docs directory are followed by MkDocs during the build process. File contents are embedded into generated HTML and exposed to users who can view the documentation. This vulnerability is fixed in` @backstage/plugin-techdocs-node` versions 1.13.11 and 1.14.1. Some workarounds are available. Switch to `runIn: docker` in `app-config.yaml` and/or restrict write access to TechDocs source repositories to trusted users only.",
"evidence": "osv:CVE-2026-25152",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-25152",
"aliases": [
"CVE-2026-25152",
"GHSA-w669-jj7h-88m9"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/backstage/backstage",
"type": "GIT",
"events": [
{
"introduced": "72ee1d9fd98f51c2e1aca58fd69163ad96c41162"
},
{
"fixed": "99d7a6f42d71e86578c89c0669a3d962088ed8ae"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "= 1.14.0"
},
{
"last_affected": "= 1.14.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandaloneSingleVersion"
},
{
"cpe": "cpe:2.3:a:linuxfoundation:backstage:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "1.14.0"
},
{
"fixed": "1.14.1"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"= 1.14.0",
"v1.14.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-25152.json"
}
}
],
"modified": "2026-10-28T02:30:29.354364902Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/25xxx/CVE-2026-25152.json",
"https://github.com/backstage/backstage/security/advisories/GHSA-w669-jj7h-88m9",
"https://nvd.nist.gov/vuln/detail/CVE-2026-25152"
],
"provider_metadata": {
"cwe_ids": [
"CWE-22"
],
"cna_assigner": "GitHub_M",
"unresolved_ranges": [
{
"extracted_events": [
{
"range": [
{
"fixed": "1.13.11"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
}
]
}
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/25xxx/CVE-2026-25152.json"
}
},
"related_cves": [
{
"value": "CVE-2026-25152",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 496203,
"published_at": "2026-01-30T21:51:22.277+00:00"
}