Backstage: Cloud storage catalog locations may cross configured storage boundaries
### Impact Catalog 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. ### Patches - `@backstage/plugin-catalog-backend-module-azure` version `0.3.21` - `@backstage/plugin-catalog-backend-module-aws` version `0.4.27` - `@backstage/backend-defaults` version `0.7.18` ### Workarounds - Restrict blob and object creation or renaming in configured catalog storage sources to trusted principals. - Scope Backstage's Azure and AWS reader credentials and network access to the intended storage boundaries. - Disable an affected catalog provider if those restrictions cannot be enforced.
- Products
- @backstage/backend-defaults, @backstage/plugin-catalog-backend-module-aws, @backstage/plugin-catalog-backend-module-azure
- Affected versions
- Not specified
- Fixed versions
- 0.17.8, 0.3.21, 0.4.27
- CVEs
- CVE-2026-106493
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 28 Oct 2026, 08:47 UTC · Revision 1
Source evidence
Backstage: Cloud storage catalog locations may cross configured storage boundaries
core-osv · Original sourcePublished 7 Oct 2026, 17:59 UTC
### Impact Catalog 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. ### Patches - `@backstage/plugin-catalog-backend-module-azure` version `0.3.21` - `@backstage/plugin-catalog-backend-module-aws` version `0.4.27` - `@backstage/backend-defaults` version `0.7.18` ### Workarounds - Restrict blob and object creation or renaming in configured catalog storage sources to trusted principals. - Scope Backstage's Azure and AWS reader credentials and network access to the intended storage boundaries. - Disable an affected catalog provider if those restrictions cannot be enforced.
osv:GHSA-xvh9-35w9-42m4
@backstage/plugin-catalog-backend-module-azure
Fixed versions: 0.3.21
@backstage/plugin-catalog-backend-module-aws
Fixed versions: 0.4.27
@backstage/backend-defaults
Fixed versions: 0.17.8
Complete source record
{
"id": "26f66043871a516c0afe564428408029e5f84b1167a734696491ba290cc1ac68",
"url": "https://osv.dev/vulnerability/GHSA-xvh9-35w9-42m4",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Backstage: Cloud storage catalog locations may cross configured storage boundaries",
"summary": "### Impact Catalog 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. ### Patches - `@backstage/plugin-catalog-backend-module-azure` version `0.3.21` - `@backstage/plugin-catalog-backend-module-aws` version `0.4.27` - `@backstage/backend-defaults` version `0.7.18` ### Workarounds - Restrict blob and object creation or renaming in configured catalog storage sources to trusted principals. - Scope Backstage's Azure and AWS reader credentials and network access to the intended storage boundaries. - Disable an affected catalog provider if those restrictions cannot be enforced.",
"evidence": "osv:GHSA-xvh9-35w9-42m4",
"products": [
{
"name": {
"value": "@backstage/plugin-catalog-backend-module-azure",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "0.3.21",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "@backstage/plugin-catalog-backend-module-aws",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "0.4.27",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "@backstage/backend-defaults",
"evidence": "/affected/2/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "0.17.8",
"evidence": "/affected/2/ranges"
}
],
"affected_versions": []
}
],
"severity": "low",
"structured": {
"id": "GHSA-xvh9-35w9-42m4",
"aliases": [
"CVE-2026-106493",
"GHSA-xvh9-35w9-42m4"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:N/A:N"
}
],
"affected": [
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "0.3.21"
}
]
}
],
"package": {
"name": "@backstage/plugin-catalog-backend-module-azure",
"purl": "pkg:npm/%40backstage/plugin-catalog-backend-module-azure",
"ecosystem": "npm"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-xvh9-35w9-42m4/GHSA-xvh9-35w9-42m4.json"
}
},
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "0.4.27"
}
]
}
],
"package": {
"name": "@backstage/plugin-catalog-backend-module-aws",
"purl": "pkg:npm/%40backstage/plugin-catalog-backend-module-aws",
"ecosystem": "npm"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-xvh9-35w9-42m4/GHSA-xvh9-35w9-42m4.json"
}
},
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "0.17.8"
}
]
}
],
"package": {
"name": "@backstage/backend-defaults",
"purl": "pkg:npm/%40backstage/backend-defaults",
"ecosystem": "npm"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-xvh9-35w9-42m4/GHSA-xvh9-35w9-42m4.json"
}
}
],
"modified": "2026-10-07T18:15:11.174792016Z",
"provider": "osv",
"references": [
"https://github.com/backstage/backstage/security/advisories/GHSA-xvh9-35w9-42m4",
"https://nvd.nist.gov/vuln/detail/CVE-2026-106493",
"https://github.com/backstage/backstage/commit/47ddbd8b4a3efd812309f759c38f4877fbd9e5ff",
"https://github.com/backstage/backstage",
"https://github.com/backstage/backstage/releases/tag/v1.54.6"
],
"provider_metadata": {
"cwe_ids": [
"CWE-22"
],
"severity": "LOW",
"github_reviewed": true,
"nvd_published_at": "2026-10-06T21:17:18Z",
"github_reviewed_at": "2026-10-07T17:59:55Z"
}
},
"related_cves": [
{
"value": "CVE-2026-106493",
"evidence": "/aliases"
}
],
"security_relevant": true,
"severity_evidence": "/database_specific/severity"
},
"source_id": "core-osv",
"document_id": 97154,
"published_at": "2026-10-07T17:59:55+00:00"
}