CVE-2026-54917High▾ MidnightPoC availableSeaweedFS: Path traversal in the S3 and Iceberg REST gateways allows cross-bucket access
▾ Midnight zone — Critical, or high with PoC / in-the-wild
impact 41.3 · likelihood 0.2 · exploitation 12
A public proof-of-concept already exists for this vulnerability — see Exploit availability below.
Public exploit / PoC code seen in 2 sources. Availability, not in-the-wild use.
Exploit-prediction probability, daily snapshots since Aug 12.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via GHSA
0.4%
0.4% → 1.2%
1 GitHub repo · Nuclei ×1
The S3 API gateway and the Iceberg REST catalog gateway construct their routers with mux.NewRouter().SkipClean(true). With path cleaning disabled, a .. segment inside the URL survives routing, so a request such as:
GET /bucket-A/../evil-bucket/key
is matched as bucket=bucket-A, object=../evil-bucket/key. The captured object key is then joined into a filer path with util.JoinPath (S3) / path.Join (Iceberg), which collapse the .. server-side, so the actual read or write lands in evil-bucket.
The captured path variables were never validated for traversal segments before reaching the handlers, so bucket isolation depended on downstream checks rather than on the path itself.
enableAuth=false): direct cross-bucket read and write. An object key containing .. resolves to and operates on a different bucket than the one named in the request path.enableAuth=true): an authorization confused-deputy. IAM evaluates the policy against the mux {bucket} variable (bucket-A) in iam.authRequestWithAuthType, while the I/O is performed against the traversed target (evil-bucket). A principal authorized for one bucket can therefore reach objects in another bucket it has no grant for. This breaks tenant isolation.The same class of traversal applies to the Iceberg REST catalog's {prefix}, {namespace}, and {table} path variables.
%2e%2e-encoded and ..\ (backslash) variants are equivalent, because gorilla/mux URL-decodes captured variables and NormalizeObjectKey folds \ to / before the path is used.
weed s3, and the S3 endpoint embedded in weed server)All releases prior to 4.30.
4.30 and later.
With a bucket evil-bucket containing secret.txt, and a caller that only has (or needs no) access to bucket-A:
GET /bucket-A/../evil-bucket/secret.txt HTTP/1.1
Host: <gateway>
The response returns the contents of evil-bucket/secret.txt. The encoded form GET /bucket-A/%2e%2e/evil-bucket/secret.txt behaves identically.
Upgrade to SeaweedFS 4.30 or later. The fix adds a validation middleware to both gateway routers that rejects any captured path variable containing a . or .. segment, a NUL byte, an embedded slash/backslash in single-segment slots, or an empty captured value, before any handler runs.
For deployments that cannot upgrade immediately, place a reverse proxy in front of the gateway that normalizes the request path and rejects requests whose path contains .., %2e%2e, or backslash sequences. Note that disabling auth removes the only remaining barrier, so do not rely on enableAuth=false deployments being protected by anything.
dd1b428)Reported responsibly by Denis Abashkin (@dadbravo).
github.com/seaweedfs/seaweedfs < 0.0.0-20260526080459-dd1b4287899eUpgrade to a patched release:
github.com/seaweedfs/seaweedfs 0.0.0-20260526080459-dd1b4287899eField changes observed since this record was first indexed.
Connected by shared product, vendor, weakness, or advisory.
CVE-2026-72921High· 8.1SeaweedFS is a distributed storage system
CVE-2026-72920Critical· 9.8SeaweedFS is a distributed storage system
CVE-2026-55873Medium· 4.3SeaweedFS: Improper authorization in the S3Tables / Iceberg REST management API lets a low-privileged S3 user enumerate administrator-owned table buckets
CVE-2026-73080Critical· 9.3SeaweedFS is a distributed storage system
CVE-2010-2861Critical· 9.8Multiple directory traversal vulnerabilities in the administrator console in Adobe ColdFusion 9.0.1 and earlier allow remote attackers to read arbitrary files via the locale parameter to (1) CFIDE/administrator/settings/mappings.cfm, (2)…
CVE-2021-27065High· 7.8Microsoft Exchange Server Remote Code Execution Vulnerability