Skip to content

DeleteObject succeeds even if invalid conditional headers are present in the request #21677

@LowCostCustoms

Description

@LowCostCustoms

IMPORTANT NOTES

Community Edition: MinIO community edition is now source-only. Install via go install github.com/minio/minio@latest

Feature Requests: We are no longer accepting feature requests for the community edition. For feature requests and enterprise support, please subscribe to MinIO Enterprise Support.

Urgent Issues: If this case is urgent or affects production, please subscribe to SUBNET for 24/7 enterprise support.

Expected Behavior

When passing conditional headers such as if-match, if-not-match, if-modified-since, or if-unmodified-since with a DeleteObject request, the latter must either fail or complete based on the conformity of the object state with the provided condition(s).

Current Behavior

DeleteObject completes successfully, whether the aforementioned headers are present.

Steps to Reproduce (for bugs)

  1. Spin up a MinIO container/app
  2. Create a bucket
  3. Create an object in a bucket
  4. Overwrite the object
  5. Call the DeleteObject operation against the object passing the ETag of the object (3) in the if-match header.

Context

AWS S3 has added support for conditional deletes for general-purpose buckets recently: aws.amazon.com/about-aws/whats-new/2025/09/amazon-s3-conditional-deletes-s3-general-purpose-buckets/

Regression

No

Your Environment

  • Version used (minio --version): minio version RELEASE.2025-09-07T16-13-09Z (commit-id=07c3a429bfed433e49018cb0f78a52145d4bedeb)
  • Operating System and version (uname -a): Linux NV-F4SHWL3 6.6.87.2-microsoft-standard-WSL2 Full restructure in accordance with #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions