Backstage catalog rules bypassed with encoded URL path segments
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- None · High · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.
Summary
Backstage is affected before 3.9.2 and from 4.0.0 before 4.0.2, including @backstage/plugin-catalog-backend. DefaultCatalogRulesEnforcer checks the raw location URL against catalog rules while URL readers fetch the canonical URL, a path traversal flaw (CWE-22). An authenticated user with catalog.location.create permission can use percent-encoded path segments so an untrusted URL matches a trusted pattern, admitting untrusted entity content as trusted.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
Backstage is an open framework for building developer portals. Prior to 3.9.2 and from 4.0.0 until 4.0.2, DefaultCatalogRulesEnforcer in @backstage/plugin-catalog-backend compares the raw location.target URL against catalog.rules, while URL readers canonicalize the same URL before fetching it. An authenticated user with catalog.location.create permission can use percent-encoded path segments to make an untrusted URL match a trusted location pattern even though the canonical URL resolves outside that scope. This admits entity content from an untrusted source as trusted, while further downstream consequences depend on deployment configuration. This issue is fixed in versions 3.9.2 and 4.0.2.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| backstage | backstage | before 3.9.2; 4.0.0 to before 4.0.2 | 3.9.2, 4.0.2 | Patch available | CNA |
| — | @backstage/plugin-catalog-backend (npm) | before 3.9.2 | 3.9.2 | Patch available | GHSA-w658-mh9p-ww8f |
| — | @backstage/plugin-catalog-backend (npm) | 4.0.0 to before 4.0.2 | 4.0.2 | Patch available | GHSA-w658-mh9p-ww8f |
- backstage Vendorbackstage Affected before 3.9.2; 4.0.0 to before 4.0.2 Fixed in 3.9.2, 4.0.2 Patch available CNA
- @backstage/plugin-catalog-backend (npm) Vendor— Affected before 3.9.2 Fixed in 3.9.2 Patch available GHSA-w658-mh9p-ww8f
- @backstage/plugin-catalog-backend (npm) Vendor— Affected 4.0.0 to before 4.0.2 Fixed in 4.0.2 Patch available GHSA-w658-mh9p-ww8f
Remediation
Update backstage to 3.9.2 or 4.0.2, and @backstage/plugin-catalog-backend to 3.9.2 or 4.0.2.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA backstage (backstage) Fixed in 3.9.2, 4.0.2
- Fix · GHSA-w658-mh9p-ww8f @backstage/plugin-catalog-backend (npm) Fixed in 3.9.2 Advisory →
- Fix · GHSA-w658-mh9p-ww8f @backstage/plugin-catalog-backend (npm) Fixed in 4.0.2 Advisory →
Vendor assessments
Timeline
- 2026-10-26 Threatist record created from CVE-2026-115923
- 2026-10-27 Priority changed: MEDIUM → LOW
- 2026-10-28 Alias added: GHSA-w658-mh9p-ww8f
- 2026-10-28 Fix available: npm/@backstage/[email protected], npm/@backstage/[email protected] · GHSA-w658-mh9p-ww8f
- 2026-10-28 CVSS score added · GHSA-w658-mh9p-ww8f
- 2026-10-28 Weakness changed · GHSA-w658-mh9p-ww8f
- 2026-10-28 7 new references · GHSA-w658-mh9p-ww8f
- 2026-11-02 CISA SSVC decision points changed
- 2026-11-06 Affected versions changed · Red Hat
- 2026-11-06 CVSS score added · Red Hat
References
Other 6
- https://github.com/backstage/backstage/security/advisories/GHSA-w658-mh9p-ww8f
- https://github.com/backstage/backstage/commit/3214dc8f15d4a08a2fd07a72a8fe4d00aeac0db4
- https://github.com/backstage/backstage/commit/737ff1c719dbd5a97f375b7f1db6d61416618419
- https://github.com/backstage/backstage/releases/tag/v1.54.10
- https://github.com/backstage/backstage/releases/tag/v1.56.1
- https://github.com/backstage/backstage
More backstage vulnerabilities
- TI-2026-33119 Malware in 42 @tanstack/* packages exfiltrates cloud credentials, GitHub tokens, and SSH keys KEVCVSS 3.1CRITICAL 9.6
- TI-2018-10499 Integer overflow in backstage kernel KEVCVSS 3.0HIGH 7.8
- TI-2024-08998 Remote Code Execution in kedro-org/kedro CVSS 3.0CRITICAL 9.8
- TI-2023-12294 Dragonfly2 vulnerable to hard coded cyptographic key CVSS 3.1CRITICAL 9.8
- TI-2021-12074 Authentication vulnerability in MOSN v.0.23.0 allows attacker to escalate privileges via… CVSS 3.1CRITICAL 9.8
- TI-2019-04061 runc through 1.0-rc6, as used in Docker before 18.09.2 and other products, allows… CVSS 3.1HIGH 8.6
Sources
- CVE-2026-115923 · CVE Program
- CVE-2026-115923 · NVD
- FIRST EPSS
- GHSA-w658-mh9p-ww8f · GitHub Advisory Database · CC BY 4.0
- CVE-2026-115923 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences