CVE-2026-55874: SeaweedFS Remote Code Execution Vulnerability
HIGHCVE-2026-55874 is a HIGH (CVSS 7.7) remote code execution vulnerability (CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')) affecting SeaweedFS libraries in the Go ecosystem. The issue involves path traversal in the s3 gateway x-amz-copy-source header allows cross-bucket object read. Remediation is available by upgrading affected packages to version 0.0.0-20260612000715-b44cf51fe931.
CVE-2026-55874 at a Glance
Security Impact
CVSS: 7.7
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N).
How to Fix CVE-2026-55874
To remediate this vulnerability, upgrade all affected SeaweedFS dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade github.com/seaweedfs/seaweedfs to 0.0.0-20260612000715-b44cf51fe931
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for github.com/seaweedfs/seaweedfs
How to Check if You Are Affected
To determine whether your application is affected by CVE-2026-55874, inspect your project dependencies for SeaweedFS:
inspect dependencies for github.com/seaweedfs/seaweedfs
Analyze the terminal output to locate any version of SeaweedFS in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 0.0.0-20260612000715-b44cf51fe931), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal'), where the product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory. In SeaweedFS, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2026-55874 Affected SeaweedFS Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
github.com/seaweedfs/seaweedfs
|
Go |
< 0.0.0-20260612000715-b44cf51fe931
|
0.0.0-20260612000715-b44cf51fe931
|
References
Frequently Asked Questions
What is CVE-2026-55874?
Which SeaweedFS versions are affected?
What version fixes CVE-2026-55874?
Is github.com/seaweedfs/seaweedfs affected?
What is the CVSS score of CVE-2026-55874?
What CWE is associated with CVE-2026-55874?
How can I check Go dependencies for CVE-2026-55874?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-56wq-x3wv-3ff4",
"modified" : "2026-08-28T22:17:33Z",
"published" : "2026-08-28T22:17:33Z",
"aliases" : [ "CVE-2026-55874" ],
"summary" : "SeaweedFS: Path traversal in the S3 gateway X-Amz-Copy-Source header allows cross-bucket object read",
"details" : "### Summary\nThe SeaweedFS S3 API gateway did not reject `..` path segments in the `X-Amz-Copy-Source` header used by `CopyObject` and `UploadPartCopy`. The request URL path was hardened against traversal in 4.30 (CVE-2026-54917), but the copy-source header was only checked for emptiness, so a `..` segment in the copy source survived into the server-side filer path and resolved into a different bucket.\n\n### Impact\nA confused-deputy authorization bypass that breaks bucket isolation. IAM evaluates the caller's policy against the bucket named in the request URL (the destination the caller owns), while the copy reads its source from the traversed target bucket. An identity scoped to a single bucket (`Read` + `Write` on one bucket it controls) can therefore read any object in any bucket on the instance and land the result in its own bucket.\n\nFor example, a caller authorized only for `bucket-a` issues a `CopyObject` into `bucket-a` with copy source `bucket-a/../<victim-bucket>/<key>`; the gateway reads `<victim-bucket>/<key>` and writes it to the attacker-controlled destination, from which the caller reads it normally. `UploadPartCopy` (CopyObjectPartHandler) is affected by the same vector.\n\n### Affected versions\nAll releases prior to 4.34. The 4.30 fix for CVE-2026-54917 hardened the request URL path but not the `X-Amz-Copy-Source` header.\n\n### Patched version\n4.34 and later.\n\n### Remediation\nUpgrade to 4.34 or later. The fix validates the copy-source bucket and object key with the same `IsValidBucketName` / `IsValidObjectKey` guards already applied to the request URL, rejecting traversal segments before the handler runs, and applies the same check to `UploadPartCopy`.\n\n### Workaround\nNo configuration workaround. For deployments that cannot upgrade immediately, front the gateway with a reverse proxy that rejects requests whose `X-Amz-Copy-Source` header contains `..`, `%2e%2e`, or backslash sequences.\n\n### References\n- Fix: https://github.com/seaweedfs/seaweedfs/pull/9929 (commit b44cf51fe931bd75aa4d37ae766bea90d7f85ccd)\n\n### Credit\nReported responsibly by [@47Cid](https://github.com/47Cid).",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "Go",
"name" : "github.com/seaweedfs/seaweedfs"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "0.0.0-20260612000715-b44cf51fe931"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/seaweedfs/seaweedfs/security/advisories/GHSA-56wq-x3wv-3ff4"
}, {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-55874"
}, {
"type" : "WEB",
"url" : "https://github.com/seaweedfs/seaweedfs/pull/9929"
}, {
"type" : "WEB",
"url" : "https://github.com/seaweedfs/seaweedfs/commit/b44cf51fe931bd75aa4d37ae766bea90d7f85ccd"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/seaweedfs/seaweedfs"
}, {
"type" : "WEB",
"url" : "https://github.com/seaweedfs/seaweedfs/releases/tag/4.34"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-22" ],
"severity" : "HIGH",
"github_reviewed" : true,
"github_reviewed_at" : "2026-08-28T22:17:33Z",
"nvd_published_at" : "2026-07-08T15:16:30Z"
}
}