Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-71192

CVE-2026-71192: OpenStack Swift Auth Bypass Vulnerability

CVE-2026-71192 is an authentication bypass flaw in OpenStack Swift S3API middleware that allows attackers to read private objects from other tenants by injecting control headers. This article covers technical details, affected versions, impact, and mitigation strategies.

Published:

CVE-2026-71192 Overview

CVE-2026-71192 is an authorization bypass vulnerability in OpenStack Swift through version 2.38.0. The S3API middleware fails to sanitize Swift-native control headers X-Copy-From and X-Copy-From-Account when processing S3 API requests configured with s3_acl=true. An attacker can inject these headers into a signed PUT request against a bucket they control. Swift then executes a server-side copy from an arbitrary tenant's private object, because the middleware authorized only the destination. The attacker reads any object whose project_id, container name, and object name are known, bypassing source ACLs and ownership checks entirely. The flaw is classified as [CWE-863: Incorrect Authorization].

Critical Impact

Authenticated tenants can read arbitrary objects across tenant boundaries when s3_acl=true is enabled, breaking multi-tenant isolation in affected OpenStack Swift deployments.

Affected Products

  • OpenStack Swift versions up to and including 2.38.0
  • Deployments using the S3API middleware with the non-default s3_acl=true configuration
  • Multi-tenant object storage clouds exposing S3-compatible endpoints via Swift

Discovery Timeline

  • 2026-08-05 - CVE-2026-71192 published to NVD
  • 2026-08-05 - Last updated in NVD database
  • OSSA-2026-030 - OpenStack Security Advisory published (OSSA-2026-030)

Technical Details for CVE-2026-71192

Vulnerability Analysis

OpenStack Swift's S3API middleware translates S3 protocol requests into native Swift operations. When s3_acl=true is configured, the middleware performs S3-style access control on the incoming request. The middleware validates authorization against the destination bucket and object, but forwards Swift-native control headers to the backend without stripping them.

The headers X-Copy-From and X-Copy-From-Account instruct Swift to perform a server-side copy from a specified account, container, and object. An attacker crafts a signed S3 PUT request targeting their own bucket and includes these headers. The middleware authorizes the PUT against the attacker's destination, then Swift executes the copy using the injected source path. No authorization check runs against the source object.

The result is a confidentiality breach limited to read access. Data integrity and availability of the victim tenant are not affected, since the attacker only exfiltrates a copy into their own container.

Root Cause

The root cause is missing input sanitization in the S3API middleware. Swift-native control headers must be stripped or rejected when they arrive on an S3 API request path, because the S3 protocol has no legitimate equivalent that would authorize cross-container reads. The middleware treats destination authorization as sufficient, violating the principle that copy operations require authorization on both source and destination.

Attack Vector

Exploitation requires valid S3 credentials on the target Swift deployment and knowledge of the victim's project_id, container name, and object name. The attacker sends a signed S3 PUT request to a bucket they own, adding X-Copy-From: /<victim_container>/<victim_object> and X-Copy-From-Account: <victim_project_id> headers. Swift copies the victim object into the attacker's container, where it can be read using standard S3 GET operations. The attack is remotely executable over the network and requires low complexity. Deployments running the default configuration where s3_acl is disabled are not vulnerable.

Detection Methods for CVE-2026-71192

Indicators of Compromise

  • S3 PUT requests containing X-Copy-From or X-Copy-From-Account headers in proxy or middleware logs
  • Server-side copy operations in Swift logs where the source account differs from the authenticated tenant
  • Anomalous object creation in a tenant's container with content matching known objects from another tenant
  • Access patterns showing enumeration of unfamiliar project_id or container name combinations

Detection Strategies

  • Parse Swift proxy access logs for requests to the S3 endpoint that carry Swift-native X-Copy-From* headers
  • Alert on any cross-account copy operations recorded in Swift backend logs where the requester is an S3 API client
  • Correlate S3 authenticated identity with the account referenced in copy source paths to detect mismatches
  • Baseline normal S3 PUT request headers per tenant and flag deviations that introduce Swift-native control headers

Monitoring Recommendations

  • Enable verbose logging on the S3API middleware and forward logs to a centralized SIEM for retention and correlation
  • Monitor object storage egress volumes per tenant and alert on sudden spikes that may indicate bulk exfiltration
  • Track newly created objects whose sizes and hashes match objects in other tenants' containers
  • Review authentication events for S3 credentials that begin issuing copy operations after periods of inactivity

How to Mitigate CVE-2026-71192

Immediate Actions Required

  • Audit the Swift proxy configuration and identify whether s3_acl=true is set in proxy-server.conf; deployments using the default s3_acl=false are not affected
  • If the non-default configuration cannot be immediately changed, apply the patch released in OpenStack Security Advisory OSSA-2026-030
  • Review historical proxy logs for S3 requests containing X-Copy-From or X-Copy-From-Account headers and notify affected tenants if evidence of exploitation exists
  • Rotate S3 credentials for tenants suspected of unauthorized access to cross-tenant data

Patch Information

OpenStack has published the fix in Security Advisory OSSA-2026-030. Additional technical detail is available in the Launchpad bug report and the Openwall OSS-Security disclosure. The patch modifies the S3API middleware to strip Swift-native copy headers from incoming S3 requests before forwarding them to the Swift backend.

Workarounds

  • Set s3_acl=false in the S3API middleware configuration until the patched version can be deployed; this returns Swift to the default configuration that is not vulnerable
  • Deploy a reverse proxy or WAF rule in front of the Swift proxy that drops X-Copy-From and X-Copy-From-Account headers on requests routed to the S3 endpoint
  • Restrict S3 API access to trusted networks and require additional network-layer authentication while a patch is pending
bash
# Configuration example: disable s3_acl in proxy-server.conf as a workaround
[filter:s3api]
use = egg:swift#s3api
s3_acl = false

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.