{"id":"CVE-2026-106493","aliases":["EUVD-2026-94013","GHSA-xvh9-35w9-42m4"],"status":"published","title":"Backstage: Cloud storage catalog locations may cross configured storage boundaries","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.","severity":{"version":"3.1","score":3,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:N/A:N","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00276,"percentile":0.20304,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-22"],"published":"2026-10-06T20:52:02Z","modified":"2026-10-28T02:30:46Z","fixes":[{"ecosystem":"npm","package":"@backstage/plugin-catalog-backend-module-azure","fixed_in":["0.3.21"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"@backstage/plugin-catalog-backend-module-aws","fixed_in":["0.4.27"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"@backstage/backend-defaults","fixed_in":["0.17.8"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"@backstage/plugin-catalog-backend-module-azure","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.3.21"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@backstage/plugin-catalog-backend-module-aws","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.4.27"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@backstage/backend-defaults","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.17.8"}]}]},{"source":"osv","ecosystem":"npm","package":"@backstage/plugin-catalog-backend-module-azure","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.3.21"}]}]},{"source":"osv","ecosystem":"npm","package":"@backstage/plugin-catalog-backend-module-aws","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.4.27"}]}]},{"source":"osv","ecosystem":"npm","package":"@backstage/backend-defaults","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.17.8"}]}]}],"products":[{"vendor":"@backstage","product":"plugin-catalog-backend-module-aws"},{"vendor":"@backstage","product":"plugin-catalog-backend-module-azure"},{"vendor":"backstage","product":"backstage"},{"vendor":"linuxfoundation","product":"backstage"},{"vendor":"linuxfoundation","product":"backstage\\/backend-defaults"},{"vendor":"linuxfoundation","product":"backstage\\/plugin-catalog-backend-module-aws"},{"vendor":"linuxfoundation","product":"backstage\\/plugin-catalog-backend-module-azure"}],"references":[{"url":"https://github.com/backstage/backstage/security/advisories/GHSA-xvh9-35w9-42m4","tags":["x_refsource_CONFIRM","Mitigation","Vendor Advisory","advisory","web"]},{"url":"https://github.com/backstage/backstage/commit/47ddbd8b4a3efd812309f759c38f4877fbd9e5ff","tags":["x_refsource_MISC","Patch","fix","web"]},{"url":"https://github.com/backstage/backstage/releases/tag/v1.54.6","tags":["x_refsource_MISC","Patch","Release Notes","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-106493","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-xvh9-35w9-42m4"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/106xxx/CVE-2026-106493.json","tags":["advisory"]},{"url":"https://github.com/backstage/backstage","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-106493","title":"Backstage: Cloud storage catalog locations may cross configured storage boundaries","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.","status":"published","published":"2026-10-06T20:52:02.451Z","modified":"2026-10-07T18:14:34.622Z","cvss":[{"version":"3.1","score":3,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:N/A:N","level":"low","assessor":"cna"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:20:04.463704Z"}],"euvd":[{"id":"EUVD-2026-94013","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.","status":"published","published":"2026-10-06T20:52:02Z","modified":"2026-10-07T18:14:34Z","cvss":[{"version":"3.1","score":3,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:N/A:N","level":"low"}],"updated_at":"2026-11-02T17:27:34.353796Z"}],"ghsa":[{"id":"GHSA-xvh9-35w9-42m4","title":"Backstage: Cloud storage catalog locations may cross configured storage boundaries","description":"### Impact\n\nCatalog entity providers for Azure Blob Storage and AWS S3 did not sufficiently validate storage object paths, which could allow catalog descriptors to be read from outside the intended storage boundary. Access is limited to locations reachable by the backend's configured credentials.\n\n### Patches\n\n- `@backstage/plugin-catalog-backend-module-azure` version `0.3.21`\n- `@backstage/plugin-catalog-backend-module-aws` version `0.4.27`\n- `@backstage/backend-defaults` version `0.7.18`\n\n### Workarounds\n\n- Restrict blob and object creation or renaming in configured catalog storage sources to trusted principals.\n- Scope Backstage's Azure and AWS reader credentials and network access to the intended storage boundaries.\n- Disable an affected catalog provider if those restrictions cannot be enforced.","status":"published","published":"2026-10-07T17:59:55Z","modified":"2026-10-07T17:59:59Z","cvss":[{"version":"3.1","score":3,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:N/A:N","level":"low"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:41:28.013673Z"}],"nvd":[{"id":"CVE-2026-106493","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.","status":"published","published":"2026-10-06T21:17:18.37Z","modified":"2026-10-22T13:13:46.153Z","cvss":[{"version":"3.1","score":3,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:N/A:N","level":"low","assessor":"secondary"},{"version":"3.1","score":4.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:12:54.809359Z"}],"osv":[{"id":"CVE-2026-106493","title":"Backstage: Cloud storage catalog locations may cross configured storage boundaries","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.","status":"published","published":"2026-10-06T20:52:02.451Z","modified":"2026-10-28T02:30:46.396571174Z","cvss":[{"version":"3.1","score":3,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:N/A:N","level":"low"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:44:54.583213Z"},{"id":"GHSA-xvh9-35w9-42m4","title":"Backstage: Cloud storage catalog locations may cross configured storage boundaries","description":"### Impact\n\nCatalog entity providers for Azure Blob Storage and AWS S3 did not sufficiently validate storage object paths, which could allow catalog descriptors to be read from outside the intended storage boundary. Access is limited to locations reachable by the backend's configured credentials.\n\n### Patches\n\n- `@backstage/plugin-catalog-backend-module-azure` version `0.3.21`\n- `@backstage/plugin-catalog-backend-module-aws` version `0.4.27`\n- `@backstage/backend-defaults` version `0.7.18`\n\n### Workarounds\n\n- Restrict blob and object creation or renaming in configured catalog storage sources to trusted principals.\n- Scope Backstage's Azure and AWS reader credentials and network access to the intended storage boundaries.\n- Disable an affected catalog provider if those restrictions cannot be enforced.","status":"published","published":"2026-10-07T17:59:55Z","modified":"2026-10-07T18:15:11.174792016Z","cvss":[{"version":"3.1","score":3,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:N/A:N","level":"low"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:47:00.604718Z"}]}}
