Executive brief
SeaweedFS is a distributed storage system that provides S3-compatible object storage. An authenticated user with limited permissions to access files in a specific folder can bypass those restrictions and overwrite different files at higher levels of the storage hierarchy, potentially corrupting or replacing critical data that should be protected from that user.
Technical details
This is an authorization bypass vulnerability in the S3 PutObjectAcl handler. The vulnerability occurs because the handler authorizes ACL modification requests against the correctly scoped object key (e.g., allowed/protected.txt) but then writes the updated entry back to the bucket root directory instead of the object's actual parent directory. When an authenticated principal with scoped write permissions calls PutObjectAcl on a nested key, the full object entry (including content, metadata, owner, and ACL) is written to an object with the same basename at the bucket root, overwriting any existing object there. This requires authentication and S3 credentials configured with specific scope permissions, but allows a scoped user to overwrite objects they should not have access to. The vulnerability is fixed in version 4.40 and later.
Affected products
- SeaweedFS SeaweedFS < 4.40
Timeline
- 2026-08-26: disclosed
- 2026-07-14: patched: Fix committed to repository; version 4.40 includes the patch