Description
MinIO through 7aac2a2 does not verify that every x-amz-* header present on a request also appears in the client-supplied X-Amz-SignedHeaders list. extractSignedHeaders() in cmd/signature-v4-utils.go iterates only the claimed list and never enumerates the headers that actually arrived, and thus a header that arrives unsigned is neither hashed into the canonical request nor rejected. Because cmd/api-router.go dispatches CopyObject on the presence of x-amz-copy-source alone, the holder of a presigned PUT URL scoped to a single object can add that header to the unmodified URL and cause a server-side copy, executed as the signer, of any object the signing key can read. A grant to write one object becomes a read of every bucket that key can reach. Amazon S3 rejects the equivalent request with HTTP 403 AccessDenied. The minio/minio GitHub repository was archived in April 2026; pgsty/silo before 1233254 is also affected.
Published: 2026-09-25
Score: 7.1 High
EPSS: < 1% Very Low
KEV: No
Impact: Unauthorized server‑side copy resulting in data exposure
Action: Apply Patch
AI Analysis

Impact

MinIO servers that have not yet been updated to the commit 7aac2a2 allow an attacker to add an unsigned X‑Amz‑Copy‑Source header to a presigned PUT URL. Because the signature verification routine iterates only over the list of signed headers, the unsignatured header is never validated, hashed, or rejected. The API router interprets the request as a CopyObject operation, which creates a server‑side copy of an arbitrary object if the signing key has read permissions to that object. Thus the attacker can read and duplicate any object that the signing key is allowed to read, effectively giving them read access to all buckets reachable by that key. This results in a data breach and potentially unauthorized data exposure.

Affected Systems

The vulnerability affects MinIO releases prior to commit 7aac2a2, as well as the pgsty/silo repository before 1233254. The affected vendor is MinIO, and the affected product is the MinIO storage server.

Risk and Exploitability

The CVSS score of 7.1 indicates a high severity. The EPSS score is not available and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector involves an attacker with access to a presigned PUT URL. By appending an unsigned X‑Amz‑Copy‑Source header, the attacker can trigger a server‑side copy as the signer, obtaining a copy of any object the signing key is permitted to read. Without patching, the risk is that legitimate users’ presigned URLs could be abused to export sensitive data beyond the intended scope.

Generated by OpenCVE AI on September 25, 2026 at 09:26 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade MinIO to a version newer than commit 7aac2a2, which includes a fix for the header verification issue.
  • If an immediate upgrade is not possible, disable or restrict the CopyObject operation for signing keys that only have upload permissions, thereby preventing unintended server‑side copies.
  • Ensure that all client requests submitted to MinIO include the X‑Amz‑SignedHeaders list that covers every X‑Amz‑* header present; reject requests where unused or unsigned headers are detected.

Generated by OpenCVE AI on September 25, 2026 at 09:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 26 Sep 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 25 Sep 2026 09:45:00 +0000

Type Values Removed Values Added
Title Unsigned X‑Amz‑Headers Enable Server‑Side Copy via Presigned PUT URLs in MinIO

Fri, 25 Sep 2026 03:15:00 +0000

Type Values Removed Values Added
Description MinIO through 7aac2a2 does not verify that every x-amz-* header present on a request also appears in the client-supplied X-Amz-SignedHeaders list. extractSignedHeaders() in cmd/signature-v4-utils.go iterates only the claimed list and never enumerates the headers that actually arrived, and thus a header that arrives unsigned is neither hashed into the canonical request nor rejected. Because cmd/api-router.go dispatches CopyObject on the presence of x-amz-copy-source alone, the holder of a presigned PUT URL scoped to a single object can add that header to the unmodified URL and cause a server-side copy, executed as the signer, of any object the signing key can read. A grant to write one object becomes a read of every bucket that key can reach. Amazon S3 rejects the equivalent request with HTTP 403 AccessDenied. The minio/minio GitHub repository was archived in April 2026; pgsty/silo before 1233254 is also affected.
First Time appeared Minio
Minio minio
Weaknesses CWE-347
CPEs cpe:2.3:a:minio:minio:*:*:*:*:*:*:*:*
Vendors & Products Minio
Minio minio
References
Metrics cvssV3_1

{'score': 7.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: mitre

Published:

Updated: 2026-09-25T15:22:53.901Z

Reserved: 2026-09-25T03:07:29.873Z

Link: CVE-2026-97731

cve-icon Vulnrichment

Updated: 2026-09-25T15:22:48.679Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-09-25T03:16:59.697

Modified: 2026-09-30T17:23:08.953

Link: CVE-2026-97731

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T09:30:07Z

Weaknesses
  • CWE-347

    Improper Verification of Cryptographic Signature