Backstage: Improper authorization enforcement for TechDocs static content
### Impact An authenticated user with access to one TechDocs documentation site could craft a URL able to read documentation belonging to a different entity. This only affects deployments using the external TechDocs builder with an external storage provider (S3, GCS, etc.) and the permission framework enabled. Instances that do not use the permission framework are unaffected, since TechDocs content is visible to all authenticated users by design. ### Patches Patched in `@backstage/plugin-techdocs-backend` version `2.2.4` ### Workarounds - None other than upgrading. Deployments that serve TechDocs from local storage are not affected.
- Products
- @backstage/plugin-techdocs-backend
- Affected versions
- Not specified
- Fixed versions
- 2.2.4
- CVEs
- CVE-2026-106489
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 28 Oct 2026, 08:47 UTC · Revision 1
Source evidence
Backstage: Improper authorization enforcement for TechDocs static content
core-osv · Original sourcePublished 7 Oct 2026, 18:00 UTC
### Impact An authenticated user with access to one TechDocs documentation site could craft a URL able to read documentation belonging to a different entity. This only affects deployments using the external TechDocs builder with an external storage provider (S3, GCS, etc.) and the permission framework enabled. Instances that do not use the permission framework are unaffected, since TechDocs content is visible to all authenticated users by design. ### Patches Patched in `@backstage/plugin-techdocs-backend` version `2.2.4` ### Workarounds - None other than upgrading. Deployments that serve TechDocs from local storage are not affected.
osv:GHSA-rg9r-hr7g-5gc2
@backstage/plugin-techdocs-backend
Fixed versions: 2.2.4
Complete source record
{
"id": "e8673551b95c5ca6dae6348a39d763ea7631bc9766c29d8d0a25425be9db2b68",
"url": "https://osv.dev/vulnerability/GHSA-rg9r-hr7g-5gc2",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Backstage: Improper authorization enforcement for TechDocs static content",
"summary": "### Impact An authenticated user with access to one TechDocs documentation site could craft a URL able to read documentation belonging to a different entity. This only affects deployments using the external TechDocs builder with an external storage provider (S3, GCS, etc.) and the permission framework enabled. Instances that do not use the permission framework are unaffected, since TechDocs content is visible to all authenticated users by design. ### Patches Patched in `@backstage/plugin-techdocs-backend` version `2.2.4` ### Workarounds - None other than upgrading. Deployments that serve TechDocs from local storage are not affected.",
"evidence": "osv:GHSA-rg9r-hr7g-5gc2",
"products": [
{
"name": {
"value": "@backstage/plugin-techdocs-backend",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.2.4",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
}
],
"severity": "medium",
"structured": {
"id": "GHSA-rg9r-hr7g-5gc2",
"aliases": [
"CVE-2026-106489",
"GHSA-rg9r-hr7g-5gc2"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N"
}
],
"affected": [
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.2.4"
}
]
}
],
"package": {
"name": "@backstage/plugin-techdocs-backend",
"purl": "pkg:npm/%40backstage/plugin-techdocs-backend",
"ecosystem": "npm"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-rg9r-hr7g-5gc2/GHSA-rg9r-hr7g-5gc2.json"
}
}
],
"modified": "2026-10-07T18:15:13.176895630Z",
"provider": "osv",
"references": [
"https://github.com/backstage/backstage/security/advisories/GHSA-rg9r-hr7g-5gc2",
"https://nvd.nist.gov/vuln/detail/CVE-2026-106489",
"https://github.com/backstage/backstage/commit/bf6bbf7326ada7d96d7b2c4ebc4a71546106f311",
"https://github.com/backstage/backstage",
"https://github.com/backstage/backstage/releases/tag/v1.54.6"
],
"provider_metadata": {
"cwe_ids": [
"CWE-22",
"CWE-862"
],
"severity": "MODERATE",
"github_reviewed": true,
"nvd_published_at": "2026-10-06T21:17:17Z",
"github_reviewed_at": "2026-10-07T18:00:06Z"
}
},
"related_cves": [
{
"value": "CVE-2026-106489",
"evidence": "/aliases"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 97170,
"published_at": "2026-10-07T18:00:06+00:00"
}