CVE-2026-97149
CVE-2026-97149
This page contains facts from public vulnerability sources. Check the original advisory before updating.
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 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.
CVSS 5.3 · Medium · EPSS 0.2% · Fix available
- Published
- Updated
Stack: system
Affected products and versions
swift
- Versions
- ≥ 2.4.0, < 2.35.5: Affected (semver)
- ≥ 2.36.0, < 2.36.4: Affected (semver)
- ≥ 2.37.0, < 2.37.4: Affected (semver)
- ≥ 2.38.0, < 2.38.2: Affected (semver)
Update to 2.35.5; Update to 2.36.4; Update to 2.37.4; Update to 2.38.2
swift Debian:12
- Versions
- 2.30.0-4
- 2.30.1-0+deb12u1
- 2.30.1-0+deb12u2
- Affected ranges
- ECOSYSTEM: < 2.30.1-0+deb12u3
Update to 2.30.1-0+deb12u3
swift Debian:13
- Versions
- 2.35.0-4
- 2.35.1-0+deb13u1
- 2.35.1-0+deb13u2
- 2.35.1-0+deb13u3
- Affected ranges
- ECOSYSTEM: < 2.35.1-0+deb13u4
Update to 2.35.1-0+deb13u4
swift Debian:14
- Versions
- 2.35.0-4
- 2.35.1-1
- 2.35.1-2
- 2.36.0-1
- 2.36.0-2
- 2.36.0-3
- 2.36.0-4
- 2.36.0-5
- 2.36.0-6
- 2.36.0-7
- 2.36.0-8
- 2.37.0-1
- 2.37.1-1
- 2.37.1-2
- 2.37.1-3
- 2.37.1-4
- 2.37.1-5
- 2.37.1-6
- 2.38.1-1
- 2.38.1-2
- Affected ranges
- ECOSYSTEM: < 2.38.1-3
Update to 2.38.1-3
swift Ubuntu:16.04:LTS
- Versions
- 2.5.0-0ubuntu1
- 2.7.0-0ubuntu2
- 2.7.0-0ubuntu2.1
- 2.7.1-0ubuntu1
- 2.7.1-0ubuntu2
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
swift Ubuntu:18.04:LTS
- Versions
- 2.15.1-0ubuntu3
- 2.16.0-0ubuntu1
- 2.16.0-0ubuntu2
- 2.17.0-0ubuntu1
- 2.17.1-0ubuntu1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
swift Ubuntu:20.04:LTS
- Versions
- 2.23.0-0ubuntu1
- 2.23.1-0ubuntu1
- 2.24.0~git2019121715.e890b0f0f-0ubuntu1
- 2.24.0-0ubuntu1
- 2.24.1~git2020032711.712bf3c9f-0ubuntu2
- 2.24.1~git2020041316.a495f1e32-0ubuntu1
- 2.25.0-0ubuntu0.20.04.1
- 2.25.1-0ubuntu1
- 2.25.2-0ubuntu1
- 2.25.2-0ubuntu1.1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
swift Ubuntu:22.04:LTS
- Versions
- 2.28.0+git2021090911.5d52afbe4-0ubuntu1
- 2.28.0+git2021120815.1859f2e16-0ubuntu1
- 2.28.0+git2021121320.876377435-0ubuntu1
- 2.28.0+git2022011309.32da73f5c-0ubuntu1
- 2.29.0+git2022030314.3ff3076ce-0ubuntu1
- 2.29.0+git2022030314.3ff3076ce-0ubuntu2
- 2.29.1-0ubuntu1
- 2.29.2-0ubuntu1
- 2.29.2-0ubuntu1.1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
swift Ubuntu:24.04:LTS
- Versions
- 2.32.0+git2023090714.8ce961ed-0ubuntu1
- 2.32.0+git2024021508.3aba22fd-0ubuntu1
- 2.32.0+git2024030809.4135133a-0ubuntu1
- 2.33.0-0ubuntu1
- 2.33.0-0ubuntu1.1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
swift Ubuntu:26.10
- Versions
- 2.37.1-0ubuntu2
- 2.38.0+git20260812.91.3064444-0ubuntu1
- 2.38.1-0ubuntu1
- 2.38.2-0ubuntu1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
swift Ubuntu:26.04:LTS
- Versions
- 2.36.0-0ubuntu1
- 2.37.0-0ubuntu1
- 2.37.1-0ubuntu2
- 2.37.1-0ubuntu2.1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published