{"id":"CVE-2026-97149","title":"In OpenStack Swift before 2.38.2, the tempurl middleware does not reject the X-Copy-From header on PUT requests","summary":"In OpenStack Swift before 2.38.2, the tempurl middleware does not reject the X-Copy-From header on PUT requests. A TempURL signature only covers the method, expiry, and path, and thus the list of disallowed headers is the only defense ag…","severity":"medium","cvss":5.3,"cvssVector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N","cwe":["CWE-184"],"vendor":"OpenStack","product":"Swift","affected":["Swift >= 2.4.0 < 2.35.5","Swift >= 2.36.0 < 2.36.4","Swift >= 2.37.0 < 2.37.4","Swift >= 2.38.0 < 2.38.2"],"published":"2026-09-24","updated":"2026-09-24","sourceUpdated":"2026-09-24T03:16:59.133","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-97149","references":[{"url":"https://launchpad.net/bugs/2166876","label":"cve@mitre.org"}],"tags":["nvd","cve.org"],"cvssSource":"cna","ingestedAt":"2026-09-24T02:36:46.281Z","slug":"CVE-2026-97149","body":"## Overview\n\nIn OpenStack Swift before 2.38.2, the tempurl middleware does not reject the X-Copy-From header on PUT requests. A TempURL signature only covers the method, expiry, and path, and thus the list of disallowed headers is the only defense against a signed PUT request changing what the request does. An attacker holding a PUT TempURL for a single object can add an X-Copy-From header naming any object in the same account; the copy middleware copies that object to the destination, and the attacker then reads the victim's data back with a GET TempURL for the destination object. Copies across account boundaries are rejected. Only deployments using the shipped default proxy pipeline (tempurl and copy middleware) with account-level TempURL keys are affected.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":29,"depthScoreParts":{"impact":29.2,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}