{"id":"CVE-2026-71198","aliases":["DEBIAN-CVE-2026-71198","EUVD-2026-77315","GHSA-cmxv-7r4v-g73c","UBUNTU-CVE-2026-71198"],"status":"published","title":"In OpenStack Glance before 32.0.1, the location API does not validate destination hosts when...","description":"In OpenStack Glance before 32.0.1, the location API does not validate destination hosts when adding an HTTP location to an image. Unlike the web-download import path, the location API only checks the URL scheme and does not apply the import_filtering_opts host restrictions. An authenticated user can add a location pointing to internal endpoints such as the cloud metadata service (169.254.169.254), and retrieve the response by downloading the image data. This affects both the new POST /v2/images/{id}/locations API and the old PATCH API when show_multiple_locations is enabled. Deployments with the HTTP store backend enabled are affected.","severity":{"version":"4.0","score":7,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.0045,"percentile":0.39398,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-918"],"published":"2026-09-14T06:54:21Z","modified":"2026-10-31T04:00:06Z","fixes":[{"ecosystem":"Debian:12","package":"glance","fixed_in":["2:25.1.0-2+deb12u5"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"glance","fixed_in":["2:32.0.0-4"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Debian:12","package":"glance","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:25.1.0-2+deb12u5"}]}],"versions":["2:25.1.0-2","2:25.1.0-2+deb12u1","2:25.1.0-2+deb12u2","2:25.1.0-2+deb12u3"]},{"source":"osv","ecosystem":"Debian:13","package":"glance","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:30.0.0-3","2:30.0.0-3+deb13u1","2:30.0.0-3+deb13u2","2:31.0.0-1","2:31.0.0-2","2:31.0.0-3","2:31.0.0-4","2:31.0.0~rc1-1","2:31.0.0~rc1-2","2:32.0.0-1","2:32.0.0-2","2:32.0.0-3","2:32.0.0-4","2:32.0.0~rc1-1","2:32.0.0~rc1-2","2:32.0.0~rc1-3","2:32.0.0~rc1-4","2:32.0.0~rc2-1","2:32.0.0~rc2-2","2:33.0.0-1","2:33.0.0-2","2:33.0.0-3","2:33.0.0-4","2:33.0.0-5","2:33.0.0-6","2:33.0.0~rc1-1","2:33.0.0~rc1-2","2:33.0.0~rc1-3"]},{"source":"osv","ecosystem":"Debian:14","package":"glance","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:32.0.0-4"}]}],"versions":["2:30.0.0-3","2:31.0.0-1","2:31.0.0-2","2:31.0.0-3","2:31.0.0-4","2:31.0.0~rc1-1","2:31.0.0~rc1-2","2:32.0.0-1","2:32.0.0-2","2:32.0.0-3","2:32.0.0~rc1-1","2:32.0.0~rc1-2","2:32.0.0~rc1-3","2:32.0.0~rc1-4","2:32.0.0~rc2-1","2:32.0.0~rc2-2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"glance","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:11.0.0-0ubuntu1","2:12.0.0~b1-0ubuntu1","2:12.0.0~b2-0ubuntu1","2:12.0.0~b3-0ubuntu1","2:12.0.0~rc1-0ubuntu1","2:12.0.0-0ubuntu1","2:12.0.0-0ubuntu2","2:12.0.0-0ubuntu2+esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"glance","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:15.0.0-0ubuntu1","2:16.0.0~b2-0ubuntu2","2:16.0.0~rc1-0ubuntu1","2:16.0.0~rc2-0ubuntu1","2:16.0.0~rc3-0ubuntu1","2:16.0.0-0ubuntu1","2:16.0.1-0ubuntu1.1","2:16.0.1-0ubuntu1.1+esm2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"glance","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:19.0.0-0ubuntu1","2:20.0.0~b1~git2019121610.0c6dd98d-0ubuntu1","2:20.0.0~b2~git2020020509.8649fdc2-0ubuntu1","2:20.0.0~b3~git2020032414.30ece7aa-0ubuntu2","2:20.0.0~b3~git2020041012.d5a0ce18-0ubuntu1","2:20.0.0-0ubuntu0.20.04.1","2:20.0.1-0ubuntu1","2:20.1.0-0ubuntu1","2:20.2.0-0ubuntu1","2:20.2.0-0ubuntu1.1","2:20.2.0-0ubuntu1.2","2:20.2.0-0ubuntu1.2+esm2"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"glance","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:23.0.0-0ubuntu1","2:23.0.0+git2021120811.4ee7799aa-0ubuntu1","2:23.0.0+git2022011216.502fa0ffc-0ubuntu1","2:24.0.0~rc1+git2022030311.d4119be05-0ubuntu1","2:24.0.0-0ubuntu1","2:24.1.0-0ubuntu1","2:24.1.0-0ubuntu1.1","2:24.2.0-0ubuntu1","2:24.2.1-0ubuntu1","2:24.2.1-0ubuntu1.2","2:24.2.1-0ubuntu1.4"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"glance","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:27.0.0-0ubuntu1","2:28.0.0~b2+git2024011916.f429b53e-0ubuntu1","2:28.0.0~rc1-0ubuntu1","2:28.0.1-0ubuntu1","2:28.0.1-0ubuntu1.2","2:28.1.0-0ubuntu1","2:28.1.0-0ubuntu1.2"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"glance","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:32.0.0-0ubuntu1","2:33.0.0~b2-0ubuntu1","2:33.0.0~rc1-0ubuntu1","2:33.0.0-0ubuntu1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"glance","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:31.0.0-0ubuntu1","2:31.0.0+git2026012615.9f4165f77-0ubuntu1","2:32.0.0~rc1-0ubuntu1","2:32.0.0~rc2-0ubuntu1","2:32.0.0-0ubuntu1"]}],"products":[{"vendor":"openstack","product":"glance"}],"references":[{"url":"https://launchpad.net/bugs/2161330","tags":["issue-tracking"]},{"url":"https://security.openstack.org/ossa/OSSA-2026-038.html","tags":["vendor-advisory","report"]},{"url":"https://openwall.com/lists/oss-security/2026/09/03/2","tags":["vendor-advisory","mailing-list"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-71198"},{"url":"https://github.com/advisories/GHSA-cmxv-7r4v-g73c"},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-71198","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-71198","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-71198","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-71198","description":"In OpenStack Glance before 32.0.1, the location API does not validate destination hosts when adding an HTTP location to an image. Unlike the web-download import path, the location API only checks the URL scheme and does not apply the import_filtering_opts host restrictions. An authenticated user can add a location pointing to internal endpoints such as the cloud metadata service (169.254.169.254), and retrieve the response by downloading the image data. This affects both the new POST /v2/images/{id}/locations API and the old PATCH API when show_multiple_locations is enabled. Deployments with the HTTP store backend enabled are affected.","status":"published","published":"2026-09-14T06:54:21.86Z","modified":"2026-09-14T14:41:21.586Z","cvss":[{"version":"4.0","score":7,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N","level":"high","assessor":"cna"}],"cwes":["CWE-918"],"updated_at":"2026-11-02T14:19:49.559463Z"}],"euvd":[{"id":"EUVD-2026-77315","description":"In OpenStack Glance before 32.0.1, the location API does not validate destination hosts when adding an HTTP location to an image. Unlike the web-download import path, the location API only checks the URL scheme and does not apply the import_filtering_opts host restrictions. An authenticated user can add a location pointing to internal endpoints such as the cloud metadata service (169.254.169.254), and retrieve the response by downloading the image data. This affects both the new POST /v2/images/{id}/locations API and the old PATCH API when show_multiple_locations is enabled. Deployments with the HTTP store backend enabled are affected.","status":"published","published":"2026-09-14T06:54:21Z","modified":"2026-09-14T14:41:21Z","cvss":[{"version":"4.0","score":7,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T17:28:20.426868Z"}],"ghsa":[{"id":"GHSA-cmxv-7r4v-g73c","title":"In OpenStack Glance before 32.0.1, the location API does not validate destination hosts when...","description":"In OpenStack Glance before 32.0.1, the location API does not validate destination hosts when adding an HTTP location to an image. Unlike the web-download import path, the location API only checks the URL scheme and does not apply the import_filtering_opts host restrictions. An authenticated user can add a location pointing to internal endpoints such as the cloud metadata service (169.254.169.254), and retrieve the response by downloading the image data. This affects both the new POST /v2/images/{id}/locations API and the old PATCH API when show_multiple_locations is enabled. Deployments with the HTTP store backend enabled are affected.","status":"published","published":"2026-09-14T09:30:59Z","modified":"2026-09-14T09:31:03Z","cvss":[{"version":"4.0","score":7,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high"}],"cwes":["CWE-918"],"updated_at":"2026-11-02T15:11:48.80782Z"}],"nvd":[{"id":"CVE-2026-71198","description":"In OpenStack Glance before 32.0.1, the location API does not validate destination hosts when adding an HTTP location to an image. Unlike the web-download import path, the location API only checks the URL scheme and does not apply the import_filtering_opts host restrictions. An authenticated user can add a location pointing to internal endpoints such as the cloud metadata service (169.254.169.254), and retrieve the response by downloading the image data. This affects both the new POST /v2/images/{id}/locations API and the old PATCH API when show_multiple_locations is enabled. Deployments with the HTTP store backend enabled are affected.","status":"published","published":"2026-09-14T07:17:16.867Z","modified":"2026-09-22T19:56:19.073Z","cvss":[{"version":"4.0","score":7,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high","assessor":"secondary"}],"cwes":["CWE-918"],"updated_at":"2026-11-02T14:12:46.980627Z"}],"osv":[{"id":"DEBIAN-CVE-2026-71198","description":"In OpenStack Glance before 32.0.1, the location API does not validate destination hosts when adding an HTTP location to an image. Unlike the web-download import path, the location API only checks the URL scheme and does not apply the import_filtering_opts host restrictions. An authenticated user can add a location pointing to internal endpoints such as the cloud metadata service (169.254.169.254), and retrieve the response by downloading the image data. This affects both the new POST /v2/images/{id}/locations API and the old PATCH API when show_multiple_locations is enabled. Deployments with the HTTP store backend enabled are affected.","status":"published","published":"2026-09-14T07:17:16.867Z","modified":"2026-10-31T04:00:06.469140034Z","cvss":[{"version":"4.0","score":7,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high"}],"updated_at":"2026-11-02T15:46:02.094661Z"},{"id":"UBUNTU-CVE-2026-71198","description":"In OpenStack Glance before 32.0.1, the location API does not validate destination hosts when adding an HTTP location to an image. Unlike the web-download import path, the location API only checks the URL scheme and does not apply the import_filtering_opts host restrictions. An authenticated user can add a location pointing to internal endpoints such as the cloud metadata service (169.254.169.254), and retrieve the response by downloading the image data. This affects both the new POST /v2/images/{id}/locations API and the old PATCH API when show_multiple_locations is enabled. Deployments with the HTTP store backend enabled are affected.","status":"published","published":"2026-09-14T07:17:00Z","modified":"2026-10-17T13:00:43.807702576Z","cvss":[{"version":"4.0","score":7,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T16:57:03.035847Z"}]}}
