Skip to content
Heist/ feed
Back to feed
Medium

swift — security advisory

Type: advisorySources: OSVAdvisory ID: UBUNTU-CVE-2026-97149

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.

Products
swift
Affected versions
2.15.1-0ubuntu3, 2.16.0-0ubuntu1, 2.16.0-0ubuntu2, 2.17.0-0ubuntu1, 2.17.1-0ubuntu1, 2.23.0-0ubuntu1, 2.23.1-0ubuntu1, 2.24.0-0ubuntu1, 2.24.0~git2019121715.e890b0f0f-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, 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, 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, 2.36.0-0ubuntu1, 2.37.0-0ubuntu1, 2.37.1-0ubuntu2, 2.37.1-0ubuntu2.1, 2.38.0+git20260812.91.3064444-0ubuntu1, 2.38.1-0ubuntu1, 2.38.2-0ubuntu1, 2.5.0-0ubuntu1, 2.7.0-0ubuntu2, 2.7.0-0ubuntu2.1, 2.7.1-0ubuntu1, 2.7.1-0ubuntu2
Fixed versions
Not specified
CVEs
CVE-2026-97149
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 03:35 UTC · Revision 1

Source evidence

UBUNTU-CVE-2026-97149

core-osv · Original source

Published 24 Sept 2026, 03:16 UTC

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.

osv:UBUNTU-CVE-2026-97149

swift

Fixed versions: Not specified

swift

Fixed versions: Not specified

swift

Fixed versions: Not specified

swift

Fixed versions: Not specified

swift

Fixed versions: Not specified

swift

Fixed versions: Not specified

swift

Fixed versions: Not specified

Complete source record
{
  "id": "e3a0adc7fdbe54fbedc675c38c1dda4b6bcf93db61588820d71e7d33b9313960",
  "url": "https://osv.dev/vulnerability/UBUNTU-CVE-2026-97149",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "UBUNTU-CVE-2026-97149",
    "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 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.",
    "evidence": "osv:UBUNTU-CVE-2026-97149",
    "products": [
      {
        "name": {
          "value": "swift",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "2.5.0-0ubuntu1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "2.7.0-0ubuntu2",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "2.7.0-0ubuntu2.1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "2.7.1-0ubuntu1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "2.7.1-0ubuntu2",
            "evidence": "/affected/0/versions"
          }
        ]
      },
      {
        "name": {
          "value": "swift",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "2.15.1-0ubuntu3",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "2.16.0-0ubuntu1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "2.16.0-0ubuntu2",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "2.17.0-0ubuntu1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "2.17.1-0ubuntu1",
            "evidence": "/affected/1/versions"
          }
        ]
      },
      {
        "name": {
          "value": "swift",
          "evidence": "/affected/2/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "2.23.0-0ubuntu1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "2.23.1-0ubuntu1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "2.24.0~git2019121715.e890b0f0f-0ubuntu1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "2.24.0-0ubuntu1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "2.24.1~git2020032711.712bf3c9f-0ubuntu2",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "2.24.1~git2020041316.a495f1e32-0ubuntu1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "2.25.0-0ubuntu0.20.04.1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "2.25.1-0ubuntu1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "2.25.2-0ubuntu1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "2.25.2-0ubuntu1.1",
            "evidence": "/affected/2/versions"
          }
        ]
      },
      {
        "name": {
          "value": "swift",
          "evidence": "/affected/3/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "2.28.0+git2021090911.5d52afbe4-0ubuntu1",
            "evidence": "/affected/3/versions"
          },
          {
            "value": "2.28.0+git2021120815.1859f2e16-0ubuntu1",
            "evidence": "/affected/3/versions"
          },
          {
            "value": "2.28.0+git2021121320.876377435-0ubuntu1",
            "evidence": "/affected/3/versions"
          },
          {
            "value": "2.28.0+git2022011309.32da73f5c-0ubuntu1",
            "evidence": "/affected/3/versions"
          },
          {
            "value": "2.29.0+git2022030314.3ff3076ce-0ubuntu1",
            "evidence": "/affected/3/versions"
          },
          {
            "value": "2.29.0+git2022030314.3ff3076ce-0ubuntu2",
            "evidence": "/affected/3/versions"
          },
          {
            "value": "2.29.1-0ubuntu1",
            "evidence": "/affected/3/versions"
          },
          {
            "value": "2.29.2-0ubuntu1",
            "evidence": "/affected/3/versions"
          },
          {
            "value": "2.29.2-0ubuntu1.1",
            "evidence": "/affected/3/versions"
          }
        ]
      },
      {
        "name": {
          "value": "swift",
          "evidence": "/affected/4/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "2.32.0+git2023090714.8ce961ed-0ubuntu1",
            "evidence": "/affected/4/versions"
          },
          {
            "value": "2.32.0+git2024021508.3aba22fd-0ubuntu1",
            "evidence": "/affected/4/versions"
          },
          {
            "value": "2.32.0+git2024030809.4135133a-0ubuntu1",
            "evidence": "/affected/4/versions"
          },
          {
            "value": "2.33.0-0ubuntu1",
            "evidence": "/affected/4/versions"
          },
          {
            "value": "2.33.0-0ubuntu1.1",
            "evidence": "/affected/4/versions"
          }
        ]
      },
      {
        "name": {
          "value": "swift",
          "evidence": "/affected/5/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "2.37.1-0ubuntu2",
            "evidence": "/affected/5/versions"
          },
          {
            "value": "2.38.0+git20260812.91.3064444-0ubuntu1",
            "evidence": "/affected/5/versions"
          },
          {
            "value": "2.38.1-0ubuntu1",
            "evidence": "/affected/5/versions"
          },
          {
            "value": "2.38.2-0ubuntu1",
            "evidence": "/affected/5/versions"
          }
        ]
      },
      {
        "name": {
          "value": "swift",
          "evidence": "/affected/6/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "2.36.0-0ubuntu1",
            "evidence": "/affected/6/versions"
          },
          {
            "value": "2.37.0-0ubuntu1",
            "evidence": "/affected/6/versions"
          },
          {
            "value": "2.37.1-0ubuntu2",
            "evidence": "/affected/6/versions"
          },
          {
            "value": "2.37.1-0ubuntu2.1",
            "evidence": "/affected/6/versions"
          }
        ]
      }
    ],
    "severity": "medium",
    "structured": {
      "id": "UBUNTU-CVE-2026-97149",
      "aliases": [
        "UBUNTU-CVE-2026-97149"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "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"
        },
        {
          "type": "Ubuntu",
          "score": "medium"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "swift",
            "purl": "pkg:deb/ubuntu/swift?arch=source&distro=xenial",
            "ecosystem": "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"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-97149.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "python-swift",
                "binary_version": "2.7.1-0ubuntu2"
              },
              {
                "binary_name": "swift",
                "binary_version": "2.7.1-0ubuntu2"
              },
              {
                "binary_name": "swift-account",
                "binary_version": "2.7.1-0ubuntu2"
              },
              {
                "binary_name": "swift-container",
                "binary_version": "2.7.1-0ubuntu2"
              },
              {
                "binary_name": "swift-object",
                "binary_version": "2.7.1-0ubuntu2"
              },
              {
                "binary_name": "swift-object-expirer",
                "binary_version": "2.7.1-0ubuntu2"
              },
              {
                "binary_name": "swift-proxy",
                "binary_version": "2.7.1-0ubuntu2"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "swift",
            "purl": "pkg:deb/ubuntu/swift?arch=source&distro=bionic",
            "ecosystem": "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"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-97149.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "python-swift",
                "binary_version": "2.17.1-0ubuntu1"
              },
              {
                "binary_name": "swift",
                "binary_version": "2.17.1-0ubuntu1"
              },
              {
                "binary_name": "swift-account",
                "binary_version": "2.17.1-0ubuntu1"
              },
              {
                "binary_name": "swift-container",
                "binary_version": "2.17.1-0ubuntu1"
              },
              {
                "binary_name": "swift-object",
                "binary_version": "2.17.1-0ubuntu1"
              },
              {
                "binary_name": "swift-object-expirer",
                "binary_version": "2.17.1-0ubuntu1"
              },
              {
                "binary_name": "swift-proxy",
                "binary_version": "2.17.1-0ubuntu1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "swift",
            "purl": "pkg:deb/ubuntu/swift?arch=source&distro=focal",
            "ecosystem": "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"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-97149.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "python3-swift",
                "binary_version": "2.25.2-0ubuntu1.1"
              },
              {
                "binary_name": "swift",
                "binary_version": "2.25.2-0ubuntu1.1"
              },
              {
                "binary_name": "swift-account",
                "binary_version": "2.25.2-0ubuntu1.1"
              },
              {
                "binary_name": "swift-container",
                "binary_version": "2.25.2-0ubuntu1.1"
              },
              {
                "binary_name": "swift-object",
                "binary_version": "2.25.2-0ubuntu1.1"
              },
              {
                "binary_name": "swift-object-expirer",
                "binary_version": "2.25.2-0ubuntu1.1"
              },
              {
                "binary_name": "swift-proxy",
                "binary_version": "2.25.2-0ubuntu1.1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "swift",
            "purl": "pkg:deb/ubuntu/swift?arch=source&distro=jammy",
            "ecosystem": "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"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-97149.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "python3-swift",
                "binary_version": "2.29.2-0ubuntu1.1"
              },
              {
                "binary_name": "swift",
                "binary_version": "2.29.2-0ubuntu1.1"
              },
              {
                "binary_name": "swift-account",
                "binary_version": "2.29.2-0ubuntu1.1"
              },
              {
                "binary_name": "swift-container",
                "binary_version": "2.29.2-0ubuntu1.1"
              },
              {
                "binary_name": "swift-object",
                "binary_version": "2.29.2-0ubuntu1.1"
              },
              {
                "binary_name": "swift-object-expirer",
                "binary_version": "2.29.2-0ubuntu1.1"
              },
              {
                "binary_name": "swift-proxy",
                "binary_version": "2.29.2-0ubuntu1.1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "swift",
            "purl": "pkg:deb/ubuntu/swift?arch=source&distro=noble",
            "ecosystem": "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"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-97149.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "python3-swift",
                "binary_version": "2.33.0-0ubuntu1.1"
              },
              {
                "binary_name": "swift",
                "binary_version": "2.33.0-0ubuntu1.1"
              },
              {
                "binary_name": "swift-account",
                "binary_version": "2.33.0-0ubuntu1.1"
              },
              {
                "binary_name": "swift-container",
                "binary_version": "2.33.0-0ubuntu1.1"
              },
              {
                "binary_name": "swift-object",
                "binary_version": "2.33.0-0ubuntu1.1"
              },
              {
                "binary_name": "swift-object-expirer",
                "binary_version": "2.33.0-0ubuntu1.1"
              },
              {
                "binary_name": "swift-proxy",
                "binary_version": "2.33.0-0ubuntu1.1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "swift",
            "purl": "pkg:deb/ubuntu/swift?arch=source&distro=stonking",
            "ecosystem": "Ubuntu:26.10"
          },
          "versions": [
            "2.37.1-0ubuntu2",
            "2.38.0+git20260812.91.3064444-0ubuntu1",
            "2.38.1-0ubuntu1",
            "2.38.2-0ubuntu1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-97149.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "python3-swift",
                "binary_version": "2.38.2-0ubuntu1"
              },
              {
                "binary_name": "swift",
                "binary_version": "2.38.2-0ubuntu1"
              },
              {
                "binary_name": "swift-account",
                "binary_version": "2.38.2-0ubuntu1"
              },
              {
                "binary_name": "swift-container",
                "binary_version": "2.38.2-0ubuntu1"
              },
              {
                "binary_name": "swift-object",
                "binary_version": "2.38.2-0ubuntu1"
              },
              {
                "binary_name": "swift-object-expirer",
                "binary_version": "2.38.2-0ubuntu1"
              },
              {
                "binary_name": "swift-proxy",
                "binary_version": "2.38.2-0ubuntu1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "swift",
            "purl": "pkg:deb/ubuntu/swift?arch=source&distro=resolute",
            "ecosystem": "Ubuntu:26.04:LTS"
          },
          "versions": [
            "2.36.0-0ubuntu1",
            "2.37.0-0ubuntu1",
            "2.37.1-0ubuntu2",
            "2.37.1-0ubuntu2.1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-97149.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "python3-swift",
                "binary_version": "2.37.1-0ubuntu2.1"
              },
              {
                "binary_name": "swift",
                "binary_version": "2.37.1-0ubuntu2.1"
              },
              {
                "binary_name": "swift-account",
                "binary_version": "2.37.1-0ubuntu2.1"
              },
              {
                "binary_name": "swift-container",
                "binary_version": "2.37.1-0ubuntu2.1"
              },
              {
                "binary_name": "swift-object",
                "binary_version": "2.37.1-0ubuntu2.1"
              },
              {
                "binary_name": "swift-object-expirer",
                "binary_version": "2.37.1-0ubuntu2.1"
              },
              {
                "binary_name": "swift-proxy",
                "binary_version": "2.37.1-0ubuntu2.1"
              }
            ]
          }
        }
      ],
      "modified": "2026-10-17T13:01:20.173547355Z",
      "provider": "osv",
      "upstream": [
        "CVE-2026-97149"
      ],
      "references": [
        "https://ubuntu.com/security/CVE-2026-97149",
        "https://www.cve.org/CVERecord?id=CVE-2026-97149",
        "https://launchpad.net/bugs/2166876",
        "https://security.openstack.org/ossa/OSSA-2026-041.html"
      ]
    },
    "related_cves": [
      {
        "value": "CVE-2026-97149",
        "evidence": "/upstream"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 361747,
  "published_at": "2026-09-24T03:16:00+00:00"
}