---
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'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
