Backstage: Improper URL validation in catalog entity placeholder resolution
Backstage is an open framework for building developer portals. Prior to 3.5.1, 3.6.2, 3.7.2, 3.8.2 and 3.9.1, the @backstage/plugin-catalog-backend package is affected by improper url validation in catalog entity placeholder resolution. An authenticated Backstage user could craft a catalog entity with placeholder directives that reference resources outside the entity's source repository. Under certain configurations, this could allow access to data not intended to be available to the user. This issue is fixed in versions 3.5.1, 3.6.2, 3.7.2, 3.8.2 and 3.9.1.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-106498
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 13:24 UTC · Revision 1
Source evidence
Backstage: Improper URL validation in catalog entity placeholder resolution
core-osv · Original sourcePublished 6 Oct 2026, 21:23 UTC
Backstage is an open framework for building developer portals. Prior to 3.5.1, 3.6.2, 3.7.2, 3.8.2 and 3.9.1, the @backstage/plugin-catalog-backend package is affected by improper url validation in catalog entity placeholder resolution. An authenticated Backstage user could craft a catalog entity with placeholder directives that reference resources outside the entity's source repository. Under certain configurations, this could allow access to data not intended to be available to the user. This issue is fixed in versions 3.5.1, 3.6.2, 3.7.2, 3.8.2 and 3.9.1.
osv:CVE-2026-106498
Complete source record
{
"id": "2105d351deaba6e59108babdbad79083fa61ab6b8caadd53162503ee5a503c1b",
"url": "https://osv.dev/vulnerability/CVE-2026-106498",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Backstage: Improper URL validation in catalog entity placeholder resolution",
"summary": "Backstage is an open framework for building developer portals. Prior to 3.5.1, 3.6.2, 3.7.2, 3.8.2 and 3.9.1, the @backstage/plugin-catalog-backend package is affected by improper url validation in catalog entity placeholder resolution. An authenticated Backstage user could craft a catalog entity with placeholder directives that reference resources outside the entity's source repository. Under certain configurations, this could allow access to data not intended to be available to the user. This issue is fixed in versions 3.5.1, 3.6.2, 3.7.2, 3.8.2 and 3.9.1.",
"evidence": "osv:CVE-2026-106498",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-106498",
"aliases": [
"CVE-2026-106498",
"GHSA-qgvj-qcf8-xq73"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/backstage/backstage",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "e8c20440640d1d2baffbf6e44a71e6960e5eb2ec"
},
{
"introduced": "168d7cc9eb2af6902ee21dd37f25b8fc0bc05438"
},
{
"fixed": "f3e982bd0530f51760c8a70d21eafaa7aed2e6eb"
},
{
"introduced": "cfb9f07c281effcb0683e8372fd0ee4edda498bf"
},
{
"fixed": "788f477f539d9c38fcf33825fb85805362c20fc0"
},
{
"introduced": "7df25cbfa382e99436ca74ef08333bbc030d4ca3"
},
{
"fixed": "ed841d1eeb744b9c78726580202cfaffcaed8db0"
},
{
"introduced": "a4bdc49ed664661bc69fe42bfaebcf24dc96e6b3"
},
{
"fixed": "0e67bc1fc88fba3a8cb716d3584cef05ecbcf9a8"
},
{
"fixed": "0b0f6fc89b4eb4872c76a498abbe1dc65998bb6e"
},
{
"fixed": "286bfc1f9cc3608a073b41016be302785be385d1"
},
{
"fixed": "61a10f19926aeda7f4a32de48d733e6710584634"
},
{
"fixed": "99729e925fd2bd40ba210022351a0ee6318e6197"
},
{
"fixed": "e786ac309ed2d775daf2309393c015c43902d6f6"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:linuxfoundation:backstage:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "1.49.6"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:linuxfoundation:backstage:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "1.50.0"
},
{
"fixed": "1.50.5"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:linuxfoundation:backstage:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "1.51.0"
},
{
"fixed": "1.51.3"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:linuxfoundation:backstage:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "1.52.0"
},
{
"fixed": "1.53.2"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:linuxfoundation:backstage:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "1.54.0"
},
{
"fixed": "1.54.6"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "0b0f6fc89b4eb4872c76a498abbe1dc65998bb6e"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "286bfc1f9cc3608a073b41016be302785be385d1"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "61a10f19926aeda7f4a32de48d733e6710584634"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "99729e925fd2bd40ba210022351a0ee6318e6197"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "e786ac309ed2d775daf2309393c015c43902d6f6"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "e8c20440640d1d2baffbf6e44a71e6960e5eb2ec"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v1.49.6"
},
{
"range": [
{
"fixed": "f3e982bd0530f51760c8a70d21eafaa7aed2e6eb"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v1.50.5"
},
{
"range": [
{
"fixed": "788f477f539d9c38fcf33825fb85805362c20fc0"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v1.51.3"
},
{
"range": [
{
"fixed": "ed841d1eeb744b9c78726580202cfaffcaed8db0"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v1.53.2"
},
{
"range": [
{
"fixed": "0e67bc1fc88fba3a8cb716d3584cef05ecbcf9a8"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v1.54.6"
}
]
}
}
],
"versions": [
"v1.51.2",
"v1.50.4",
"v1.49.5",
"v1.54.5",
"v1.54.4",
"v1.54.3",
"v1.54.2",
"v1.54.1",
"v1.54.0",
"v1.53.1",
"v1.53.0",
"v1.53.0-next.2",
"v1.53.0-next.1",
"v1.52.0",
"v1.53.0-next.0",
"v1.51.1",
"v1.51.0",
"v1.50.3",
"v1.50.2",
"v1.50.1",
"v1.49.4",
"v1.50.0",
"v1.49.3",
"v1.49.2",
"v1.49.1",
"v1.49.0",
"v1.49.0-next.2",
"v1.49.0-next.1",
"v1.49.0-next.0",
"v1.48.0",
"v1.48.0-next.2",
"v1.48.0-next.1",
"v1.48.0-next.0",
"v1.47.0",
"v1.47.0-next.3",
"v1.47.0-next.2",
"v1.47.0-next.1",
"v1.47.0-next.0",
"v1.46.0",
"v1.45.0-next.2",
"v1.46.0-next.2",
"v1.46.0-next.1",
"v1.45.0",
"v1.46.0-next.0",
"v1.45.0-next.3",
"v1.45.0-next.1",
"v1.45.0-next.0",
"v1.44.0",
"v1.44.0-next.1",
"v1.44.0-next.2",
"v1.44.0-next.0",
"v1.43.0",
"v1.43.0-next.2",
"v1.43.0-next.0",
"v1.43.0-next.1",
"v1.42.0",
"v1.44.0-next.3",
"v1.42.0-next.3",
"v1.42.0-next.2",
"v1.42.0-next.1",
"v1.42.0-next.0",
"v1.41.0",
"v1.41.0-next.2",
"v1.41.0-next.1",
"v1.41.0-next.0",
"v1.40.0",
"v1.40.0-next.3",
"v1.40.0-next.2",
"v1.39.0",
"v1.40.0-next.1",
"v1.40.0-next.0",
"v1.39.0-next.3",
"v1.39.0-next.2",
"v1.39.0-next.1",
"v1.39.0-next.0",
"v1.38.0",
"v1.38.0-next.2",
"v1.37.0",
"v1.38.0-next.1",
"v1.38.0-next.0",
"v1.37.0-next.2",
"v1.37.0-next.1",
"v1.37.0-next.0",
"v1.36.0",
"v1.36.0-next.3",
"v1.35.0",
"v1.36.0-next.2",
"v1.36.0-next.1",
"v1.36.0-next.0",
"v1.35.0-next.2",
"v1.35.0-next.1",
"v1.35.0-next.0",
"v1.34.0",
"v1.34.0-next.2",
"v1.34.0-next.1",
"v1.34.0-next.0",
"v1.33.0",
"v1.33.0-next.3",
"v1.33.0-next.2",
"v1.33.0-next.1",
"v1.33.0-next.0",
"v1.32.0",
"v1.32.0-next.2",
"v1.32.0-next.1",
"v1.32.0-next.0",
"v1.31.0",
"v1.31.0-next.2",
"v1.31.0-next.1",
"v1.31.0-next.0",
"v1.30.0",
"v1.30.0-next.4",
"v1.30.0-next.3",
"v1.30.0-next.2",
"v1.30.0-next.1",
"v1.30.0-next.0",
"v1.29.0",
"v1.29.0-next.2",
"v1.29.0-next.1",
"v1.29.0-next.0",
"v1.28.0",
"v1.28.0-next.3",
"v1.28.0-next.1",
"v1.28.0-next.2",
"v1.28.0-next.0",
"v1.27.0",
"v1.27.0-next.2",
"v1.27.0-next.1",
"v1.27.0-next.0",
"v1.26.0",
"v1.26.0-next.1",
"v1.25.0",
"v1.26.0-next.0",
"v1.24.2",
"v1.24.1",
"v1.24.0",
"v1.24.0-next.2",
"v1.24.0-next.1",
"v1.24.0-next.0",
"v1.23.0",
"v1.23.0-next.3",
"v1.23.0-next.2",
"v1.23.0-next.1",
"v1.23.0-next.0",
"v1.22.0",
"v1.22.0-next.2",
"v1.22.0-next.1",
"v1.22.0-next.0",
"v1.21.0",
"v1.21.0-next.4",
"v1.21.0-next.3",
"v1.21.0-next.2",
"v1.21.0-next.1",
"v1.21.0-next.0",
"v1.20.0",
"v1.20.0-next.2",
"v1.20.0-next.1",
"v1.20.0-next.0",
"v1.19.0",
"v1.19.0-next.2",
"v1.19.0-next.1",
"v1.19.0-next.0",
"v1.18.0",
"v1.18.0-next.3",
"v1.18.0-next.2",
"v1.18.0-next.1",
"v1.18.0-next.0",
"v1.17.0",
"v1.15.0-next.1",
"v1.17.0-next.2",
"v1.17.0-next.1",
"v1.17.0-next.0",
"v1.16.0",
"v1.16.0-next.2",
"v1.16.0-next.1",
"v1.16.0-next.0",
"v1.15.0",
"v1.15.0-next.3",
"v1.15.0-next.2",
"v1.15.0-next.0",
"v1.14.0",
"v1.14.0-next.2",
"v1.14.0-next.1",
"v1.13.0",
"v1.14.0-next.0",
"v1.13.0-next.3",
"v1.13.0-next.2",
"v1.13.0-next.1",
"v1.13.0-next.0",
"v1.12.0",
"v1.12.0-next.2",
"v1.12.0-next.1",
"v1.12.0-next.0",
"v1.11.0",
"v1.11.0-next.2",
"v1.11.0-next.1",
"v1.11.0-next.0",
"v1.10.0",
"v1.10.0-next.2",
"v1.10.0-next.1",
"v1.10.0-next.0",
"v1.9.0",
"v1.9.0-next.4",
"v1.9.0-next.3",
"v1.9.0-next.2",
"v1.9.0-next.1",
"v1.9.0-next.0",
"v1.8.0-next.1",
"v1.8.0",
"v1.8.0-next.2",
"v1.7.0",
"v1.8.0-next.0",
"v1.7.0-next.2",
"v1.7.0-next.1",
"v1.7.0-next.0",
"v1.6.0",
"v1.6.0-next.3",
"v1.6.0-next.2",
"v1.6.0-next.1",
"v1.5.0",
"v1.6.0-next.0",
"v1.5.0-next.3",
"v1.5.0-next.2",
"v1.5.0-next.1",
"v1.5.0-next.0",
"v1.4.0",
"v1.4.0-next.3",
"v1.3.0",
"v1.4.0-next.1",
"v1.4.0-next.2",
"v1.4.0-next.0",
"v1.3.0-next.2",
"v1.3.0-next.1",
"v1.3.0-next.0",
"v1.2.0",
"v1.2.0-next.3",
"v1.2.0-next.2",
"v1.2.0-next.1",
"v1.2.0-next.0",
"v1.1.0",
"v1.1.0-next.3",
"v1.1.0-next.2",
"v1.1.0-next.1",
"v1.1.0-next.0",
"v1.0.0",
"v0.71.0",
"v0.71.0-next.0",
"v0.70.0",
"v0.69.0",
"v0.68.0",
"v0.67.0",
"v0.67.0-next.0",
"v0.66.0",
"v0.66.0-next.1",
"v0.66.0-next.0",
"v0.65.0",
"release-2022-01-27",
"v0.64.1",
"release-2022-01-20.1",
"v0.64.0",
"release-2022-01-20",
"v0.63.0",
"release-2022-01-13",
"v0.63.1",
"release-2022-01-18",
"v0.62.0",
"release-2022-01-04",
"v0.61.0",
"release-2021-12-30",
"v0.60.1",
"release-2021-12-24",
"v0.60.0",
"release-2021-12-23",
"v0.59.0",
"release-2021-12-16",
"v0.58.1",
"release-2021-12-10",
"v0.58.0",
"release-2021-12-09",
"v0.57.1",
"release-2021-12-07",
"v0.57.0",
"release-2021-12-02",
"v0.56.0",
"release-2021-11-25",
"v0.55.1",
"release-2021-11-19",
"v0.55.0",
"release-2021-11-18",
"v0.54.4",
"release-2021-11-17.1",
"v0.54.3",
"release-2021-11-17",
"v0.54.2",
"release-2021-11-12",
"v0.54.1",
"release-2021-11-11.1",
"v0.54.0",
"release-2021-11-11",
"v0.53.3",
"release-2021-11-08",
"v0.53.0",
"release-2021-10-28",
"v0.53.2",
"release-2021-10-29.1",
"v0.53.1",
"release-2021-10-29",
"v0.52.1",
"release-2021-10-22",
"v0.51.2",
"release-2021-10-19",
"v0.52.0",
"release-2021-10-21",
"v0.51.1",
"release-2021-10-16",
"v0.51.0",
"release-2021-10-14",
"v0.50.2",
"release-2021-10-13",
"v0.50.1",
"release-2021-10-11",
"v0.50.0",
"release-2021-10-07",
"release-2021-10-06",
"release-2021-10-04",
"v0.49.0",
"release-2021-09-30",
"v0.48.1",
"release-2021-09-28",
"v0.48.0",
"release-2021-09-23",
"v0.47.2",
"release-2021-09-21",
"v0.47.1",
"release-2021-09-17",
"v0.47.0",
"release-2021-09-16",
"v0.46.1",
"release-2021-09-14",
"v0.46.0",
"release-2021-09-09",
"v0.45.0",
"release-2021-09-02",
"v0.44.1",
"release-2021-08-31",
"v0.44.0",
"release-2021-08-26",
"v0.43.0",
"release-2021-08-20",
"v0.42.0",
"release-2021-08-19",
"v0.41.1",
"release-2021-08-17",
"v0.41.0",
"release-2021-08-12",
"v0.40.1",
"release-2021-08-11",
"v0.40.0",
"release-2021-08-05",
"v0.39.1",
"release-2021-08-03",
"v0.39.0",
"release-2021-07-29",
"v0.38.0",
"release-2021-07-22",
"v0.37.1",
"release-2021-07-16",
"v0.37.0",
"release-2021-07-15",
"v0.36.2",
"release-2021-07-14.1",
"v0.36.1",
"release-2021-07-14",
"v0.36.0",
"release-2021-07-08",
"v0.35.1",
"release-2021-07-07",
"v0.35.0",
"release-2021-07-01",
"v0.34.1",
"release-2021-06-28",
"v0.34.0",
"release-2021-06-24",
"v0.33.3",
"release-2021-06-21.1",
"v0.33.2",
"release-2021-06-21",
"v0.33.1",
"release-2021-06-18",
"v0.33.0",
"release-2021-06-17.1",
"v0.32.0",
"release-2021-06-17",
"v0.31.0",
"release-2021-06-10.1",
"v0.30.1",
"release-2021-06-10",
"v0.28.0",
"release-2021-05-20.1",
"v0.30.0",
"release-2021-06-03",
"v0.29.2",
"release-2021-06-01",
"v0.29.1",
"release-2021-05-31",
"v0.29.0",
"release-2021-05-27",
"v0.24.1",
"release-2021-05-04",
"v0.26.0",
"release-2021-05-12.1",
"v0.27.0",
"release-2021-05-20",
"v0.26.1",
"release-2021-05-17",
"v0.25.3",
"release-2021-05-12",
"v0.25.2",
"release-2021-05-11",
"v0.25.1",
"release-2021-05-10",
"v0.25.0",
"release-2021-05-06",
"v0.24.0",
"release-2021-04-29",
"v0.23.0",
"release-2021-04-22.1",
"v0.22.2",
"release-2021-04-22",
"v0.22.1",
"release-2021-04-21",
"v0.22.0",
"release-2021-04-15",
"v0.21.1",
"release-2021-04-13",
"v0.20.0",
"release-2021-03-31",
"v0.21.0",
"release-2021-04-08",
"v0.20.1",
"release-2021-03-31.1",
"v0.19.0",
"release-2021-03-25",
"v0.18.1",
"release-2021-03-19",
"v0.18.0",
"release-2021-03-18",
"v0.17.3",
"release-2021-03-17",
"v0.17.2",
"release-2021-03-16",
"v0.17.1",
"release-2021-03-11.1",
"v0.17.0",
"release-2021-03-11",
"v0.16.1",
"release-2021-03-09",
"v0.16.0",
"release-2021-03-04",
"v0.15.0",
"release-2021-02-23",
"v0.14.0",
"release-2021-02-18",
"v0.13.1",
"release-2021-02-16",
"v0.13.0",
"release-2021-02-11",
"v0.12.0",
"release-2021-02-05",
"v0.11.3",
"release-2021-02-03",
"v0.11.2",
"release-2021-02-01",
"v0.11.1",
"release-2021-01-29",
"v0.11.0",
"release-2021-01-28",
"v0.10.0",
"release-2021-01-21.1",
"v0.9.0",
"release-2021-01-21",
"v0.8.2",
"release-2021-01-20",
"v0.8.1",
"release-2021-01-18",
"v0.8.0",
"release-2021-01-14.1",
"v0.7.0",
"release-2021-01-14",
"v0.6.0",
"release-2021-01-09",
"v0.5.0",
"release-2021-01-08",
"release-2021-1-7",
"release-2021-01-07",
"v0.4.3",
"v0.4.2",
"v0.4.1",
"v0.4.0",
"v0.3.2",
"v0.3.1",
"v0.3.0",
"v0.2.0",
"v0.1.1",
"v0.1.1-alpha.26",
"v0.1.1-alpha.25",
"v0.1.1-alpha.24",
"v0.1.1-alpha.23",
"v0.1.1-alpha.22",
"v0.1.1-alpha.21",
"v0.1.1-alpha.20",
"v0.1.1-alpha.19",
"v0.1.1-alpha.18",
"v0.1.1-alpha.17",
"v0.1.1-alpha.16",
"v0.1.1-alpha.15",
"v0.1.1-alpha.13",
"v0.1.1-alpha.12",
"v0.1.1-alpha.11",
"v0.1.1-alpha.10",
"cli-old-cache-watch",
"v0.1.1-alpha.8",
"v0.1.1-alpha.7",
"v0.1.1-alpha.6",
"v0.1.1-alpha.5",
"v0.1.1-alpha.4",
"v0.1.1-alpha.3",
"v0.1.1-alpha.2",
"v0.1.1-alpha.1",
"v0.1.1-alpha.0",
"v0.1.0",
"hackweek-demo"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-106498.json"
}
}
],
"modified": "2026-10-28T02:30:35.704719374Z",
"provider": "osv",
"references": [
"https://github.com/backstage/backstage/releases/tag/v1.49.6",
"https://github.com/backstage/backstage/releases/tag/v1.50.5",
"https://github.com/backstage/backstage/releases/tag/v1.51.3",
"https://github.com/backstage/backstage/releases/tag/v1.53.2",
"https://github.com/backstage/backstage/releases/tag/v1.54.6",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/106xxx/CVE-2026-106498.json",
"https://github.com/backstage/backstage/security/advisories/GHSA-qgvj-qcf8-xq73",
"https://nvd.nist.gov/vuln/detail/CVE-2026-106498",
"https://github.com/backstage/backstage/commit/0b0f6fc89b4eb4872c76a498abbe1dc65998bb6e",
"https://github.com/backstage/backstage/commit/286bfc1f9cc3608a073b41016be302785be385d1",
"https://github.com/backstage/backstage/commit/61a10f19926aeda7f4a32de48d733e6710584634",
"https://github.com/backstage/backstage/commit/99729e925fd2bd40ba210022351a0ee6318e6197",
"https://github.com/backstage/backstage/commit/e786ac309ed2d775daf2309393c015c43902d6f6"
],
"provider_metadata": {
"cwe_ids": [
"CWE-863",
"CWE-918"
],
"cna_assigner": "GitHub_M",
"unresolved_ranges": [
{
"extracted_events": [
{
"range": [
{
"fixed": "3.5.1"
},
{
"introduced": "3.6.0"
},
{
"fixed": "3.6.2"
},
{
"introduced": "3.7.0"
},
{
"fixed": "3.7.2"
},
{
"introduced": "3.8.0"
},
{
"fixed": "3.8.2"
},
{
"introduced": "3.9.0"
},
{
"fixed": "3.9.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
}
]
}
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/106xxx/CVE-2026-106498.json"
}
},
"related_cves": [
{
"value": "CVE-2026-106498",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 503062,
"published_at": "2026-10-06T21:23:37.56+00:00"
}