{"id":"CVE-2026-93854","state":"PUBLISHED","title":"In OpenStack Blazar before 17.0.1, the V2 lease API does not enforce object-level authorization on its update and delete operations (PUT /v2/leases/{lease_id} and DELETE /v2/leases","description":"In OpenStack Blazar before 17.0.1, the V2 lease API does not enforce object-level authorization on its update and delete operations (PUT /v2/leases/{lease_id} and DELETE /v2/leases/{lease_id}). The policy authorize() wrapper attempts to load the target lease to build the authorization target from its owner, but it looks up the lease under the keyword \"lease_id\" whereas the controller methods name the parameter \"id\" (and the wsme_pecan.wsexpose wrapper delivers it positionally). The lookup returns None, and thus authorization falls back to the requesting user's own project_id/user_id instead of the target lease owner. Any authenticated user who knows a lease ID can therefore modify or delete leases belonging to other users and projects, bypassing the intended ownership check.","publishedAt":"2026-09-18T18:57:56.107Z","updatedAt":"2026-09-22T15:19:34.210Z","severity":{"score":7.2,"label":"High","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N","source":"mitre"},"assigner":"mitre","products":["OpenStack Blazar"],"affected":[{"vendor":"OpenStack","product":"Blazar","defaultStatus":"unaffected","versions":[{"version":"1.0.0","status":"affected","lessThan":"15.1.1","versionType":"semver"},{"version":"16.0.0","status":"affected","lessThan":"16.0.1","versionType":"semver"},{"version":"17.0.0","status":"affected","lessThan":"17.0.1","versionType":"semver"}],"repo":"https://opendev.org/openstack/blazar"}],"references":["https://launchpad.net/bugs/2162719"],"weaknesses":["CWE-1025"],"ingestedAt":"2026-10-29T20:13:34.582Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/93xxx/CVE-2026-93854.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-93854","state":"PUBLISHED","datePublished":"2026-09-18T18:57:56.107Z","dateUpdated":"2026-09-22T15:19:34.210Z","assignerShortName":"mitre","assignerOrgId":"8254265b-2729-46b6-b9e3-3dfca2d5bfca","dateReserved":"2026-09-18T18:57:50.302Z"},"containers":{"cna":{"descriptions":[{"lang":"en","value":"In OpenStack Blazar before 17.0.1, the V2 lease API does not enforce object-level authorization on its update and delete operations (PUT /v2/leases/{lease_id} and DELETE /v2/leases/{lease_id}). The policy authorize() wrapper attempts to load the target lease to build the authorization target from its owner, but it looks up the lease under the keyword \"lease_id\" whereas the controller methods name the parameter \"id\" (and the wsme_pecan.wsexpose wrapper delivers it positionally). The lookup returns None, and thus authorization falls back to the requesting user's own project_id/user_id instead of the target lease owner. Any authenticated user who knows a lease ID can therefore modify or delete leases belonging to other users and projects, bypassing the intended ownership check."}],"affected":[{"vendor":"OpenStack","product":"Blazar","defaultStatus":"unaffected","versions":[{"version":"1.0.0","status":"affected","lessThan":"15.1.1","versionType":"semver"},{"version":"16.0.0","status":"affected","lessThan":"16.0.1","versionType":"semver"},{"version":"17.0.0","status":"affected","lessThan":"17.0.1","versionType":"semver"}],"repo":"https://opendev.org/openstack/blazar"}],"references":[{"url":"https://launchpad.net/bugs/2162719","tags":["issue-tracking"]}],"metrics":[{"cvssV4_0":{"Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","Safety":"NOT_DEFINED","attackComplexity":"LOW","attackRequirements":"NONE","attackVector":"NETWORK","baseScore":7.2,"baseSeverity":"HIGH","privilegesRequired":"LOW","providerUrgency":"NOT_DEFINED","subAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","userInteraction":"NONE","valueDensity":"NOT_DEFINED","vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N","version":"4.0","vulnAvailabilityImpact":"HIGH","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"HIGH","vulnerabilityResponseEffort":"NOT_DEFINED"},"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-1025","description":"CWE-1025 Comparison Using Wrong Factors","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"mitre","orgId":"8254265b-2729-46b6-b9e3-3dfca2d5bfca","dateUpdated":"2026-09-18T18:57:56.107Z"},"x_generator":{"engine":"CVE-Request-form 0.0.1"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-09-22T15:19:18.318576Z","id":"CVE-2026-93854","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-09-22T15:19:34.210Z"}}]}}}