{"schemaVersion":3,"id":"CVE-2026-106494","aliases":["GHSA-7649-wm97-w3j3"],"status":"published","duplicateOf":null,"title":null,"description":"Backstage is an open framework for building developer portals. Prior to 0.17.8, the @backstage/backend-defaults package is affected by improper input validation in cloud storage url readers. An attacker with write access to a cloud storage bucket used by Backstage could craft object names that could collide with protected files in the output directory. In certain deployment configurations, this could lead to content injection. This issue is fixed in version 0.17.8.","dates":{"published":"2026-10-06T20:54:14.590Z","modified":"2026-10-07T15:32:00.720Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":4.4,"severity":"medium","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:H/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":4.4,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:H/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Npm","score":4.4,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:H/A:N","exploitability":1.8,"impact":6,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":4.4,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:H/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00286,"percentile":0.19865,"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.00286,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00286,"percentile":0.19865}],"last30":[{"date":"2026-10-07T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00286,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00286,"percentile":0.19865}]},"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"},{"id":"CWE-73","name":"External Control of File Name or Path","description":"The product allows user input to control or influence paths or file names that are used in filesystem operations.","type":"weakness","status":"Draft","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/73.html"}],"affected":[{"vendor":"@backstage","product":"backend-defaults","name":"backend-defaults","label":"backend-defaults","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 0.17.8","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.17.8","eol":null,"hubHref":"/vendor/backstage/backend-defaults"},{"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":"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}],"affectedCount":3,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/backstage/backstage/security/advisories/GHSA-7649-wm97-w3j3","label":"github.com/backstage/backstage/security/advisories/GHSA-7649-wm97-w3j3","hostname":"github.com","tags":["X Refsource CONFIRM","WEB"]},{"url":"https://github.com/backstage/backstage/commit/14e925ce5b905dd8daa64c3009722febda76034c","label":"github.com/backstage/backstage/commit/14e925ce5b905dd8daa64c3009722febda76034c","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-106494","label":"nvd.nist.gov/vuln/detail/CVE-2026-106494","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:54:14.590Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-10-07T15:32:00.720Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":18,"level":"low","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-21T07:03:31.331Z","stale":false,"partial":false}}