{"schemaVersion":3,"id":"CVE-2026-106493","aliases":["GHSA-xvh9-35w9-42m4"],"status":"published","duplicateOf":null,"title":null,"description":"Backstage is an open framework for building developer portals. Prior to 1.54.6, cloud storage catalog providers did not sufficiently validate object paths. A principal able to create or rename objects in a configured Azure Blob Storage or AWS S3 catalog source could cause catalog descriptors to be read from outside the intended storage boundary, limited to locations reachable with the backend's configured credentials. This issue is fixed in 1.54.6.","dates":{"published":"2026-10-06T20:52:02.451Z","modified":"2026-10-07T18:14:34.622Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":3,"severity":"low","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:N/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":3,"severity":"low","vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:N/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Npm","score":3,"severity":"low","vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:N/A:N","exploitability":3.3,"impact":2.3,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":3,"severity":"low","vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:N/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00259,"percentile":0.16491,"severity":"low","asOf":"2026-10-20T00:00:00.000Z","change":{"pp":null,"baselineDate":null,"baselineScore":null},"history":[{"date":"2026-10-07T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00259,"percentile":0.16491}],"last30":[{"date":"2026-10-07T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00259,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00259,"percentile":0.16491}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-22","name":"Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","description":"The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/22.html"}],"affected":[{"vendor":"backstage","product":"backstage","name":"backstage","label":"backstage","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 1.54.6","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.54.6","eol":null,"hubHref":"/vendor/backstage/backstage"},{"vendor":"@backstage","product":"plugin-catalog-backend-module-aws","name":"plugin-catalog-backend-module-aws","label":"plugin-catalog-backend-module-aws","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 0.4.27","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.4.27","eol":null,"hubHref":"/vendor/backstage/plugin-catalog-backend-module-aws"},{"vendor":"@backstage","product":"plugin-catalog-backend-module-azure","name":"plugin-catalog-backend-module-azure","label":"plugin-catalog-backend-module-azure","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 0.17.8","noFixRecorded":false,"fixedIn":null},{"text":"< 0.3.21","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.17.8 | < 0.3.21","eol":null,"hubHref":"/vendor/backstage/plugin-catalog-backend-module-azure"},{"vendor":"@backstage","product":"backend-defaults","name":"@backstage/backend-defaults","label":"backend-defaults","ecosystem":"Npm","cpePart":null,"purl":"pkg:npm/@backstage/backend-defaults","purlType":"npm","versions":[{"text":"< 0.17.8","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.17.8","eol":null,"hubHref":null},{"vendor":"@backstage","product":"plugin-catalog-backend-module-aws","name":"@backstage/plugin-catalog-backend-module-aws","label":"plugin-catalog-backend-module-aws","ecosystem":"Npm","cpePart":null,"purl":"pkg:npm/@backstage/plugin-catalog-backend-module-aws","purlType":"npm","versions":[{"text":"< 0.4.27","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.4.27","eol":null,"hubHref":null},{"vendor":"@backstage","product":"plugin-catalog-backend-module-azure","name":"@backstage/plugin-catalog-backend-module-azure","label":"plugin-catalog-backend-module-azure","ecosystem":"Npm","cpePart":null,"purl":"pkg:npm/@backstage/plugin-catalog-backend-module-azure","purlType":"npm","versions":[{"text":"< 0.3.21","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.3.21","eol":null,"hubHref":null}],"affectedCount":6,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/backstage/backstage/security/advisories/GHSA-xvh9-35w9-42m4","label":"github.com/backstage/backstage/security/advisories/GHSA-xvh9-35w9-42m4","hostname":"github.com","tags":["X Refsource CONFIRM","WEB"]},{"url":"https://github.com/backstage/backstage/commit/47ddbd8b4a3efd812309f759c38f4877fbd9e5ff","label":"github.com/backstage/backstage/commit/47ddbd8b4a3efd812309f759c38f4877fbd9e5ff","hostname":"github.com","tags":["X Refsource MISC","WEB"]},{"url":"https://github.com/backstage/backstage/releases/tag/v1.54.6","label":"github.com/backstage/backstage/releases/tag/v1.54.6","hostname":"github.com","tags":["X Refsource MISC","WEB"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-106493","label":"nvd.nist.gov/vuln/detail/CVE-2026-106493","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/backstage/backstage","label":"github.com/backstage/backstage","hostname":"github.com","tags":["PACKAGE"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-10-06T20:52:02.451Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-10-07T18:14:34.622Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":12,"level":"low","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-21T08:09:37.708Z","stale":false,"partial":false}}