CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-55874

CVE-2026-55874: Cross-Bucket Path Traversal in SeaweedFS S3 API Gateway

Amit Schendel
Amit Schendel
Senior Security Researcher

Aug 29, 2026·7 min read·2 visits

Executive Summary (TL;DR)

SeaweedFS S3 API Gateway allows cross-bucket reads via path traversal in the X-Amz-Copy-Source header prior to version 4.34.

A critical path traversal vulnerability (CVE-2026-55874) in the SeaweedFS S3 API Gateway prior to version 4.34 allows authenticated remote attackers with write access to at least one bucket to bypass isolation. By supplying crafted directory traversal sequences in the X-Amz-Copy-Source header, an attacker can read objects from arbitrary buckets on the same deployment.

Vulnerability Overview

The S3 API Gateway in SeaweedFS is a critical component that exposes an Amazon S3-compatible interface on top of the distributed SeaweedFS Filer backend. This gateway maps S3 operations, such as object uploads, downloads, and copies, to the underlying hierarchical file storage. Because the gateway handles authentication and authorization, it acts as the security boundary enforcing isolation between different S3 buckets and their associated user policies.

The vulnerability, designated as CVE-2026-55874, is an implementation flaw in the way the S3 API Gateway processes server-side copy requests. Specifically, the vulnerability resides within the handlers for the S3 CopyObject and UploadPartCopy operations. These operations allow clients to duplicate existing objects inside the storage cluster without downloading and re-uploading the data, which optimizes network performance.

By failing to perform proper path validation on user-controlled headers during these copy operations, the S3 API Gateway exposes a path traversal interface. An authenticated user who is restricted to a single bucket can read any object across the entire SeaweedFS deployment. The vulnerability represents a serious breakdown of the multi-tenancy model in SeaweedFS environments that rely on S3 bucket-level isolation.

Root Cause Analysis

The root cause of CVE-2026-55874 is the improper limitation of a pathname to a restricted directory (CWE-22) when parsing the X-Amz-Copy-Source header. In a standard S3 copy operation, the destination of the copy is defined by the HTTP request URL, while the source is declared in the X-Amz-Copy-Source request header. The S3 API Gateway performs access control checks against the destination path specified in the URL to ensure the client has writing privileges.

Once authorization is verified for the destination bucket, the gateway parses the X-Amz-Copy-Source header to resolve the location of the source object. Prior to version 4.34, the parser divided the header value into two parts: the bucket name and the object key. However, the gateway only checked whether these extracted strings were non-empty, neglecting to validate or sanitize them for directory traversal sequences.

When these components are handed off to the SeaweedFS Filer backend, they are concatenated into a single path using filesystem path resolution helpers. Because the object key parsed from the header can contain path traversal segments like .. or %2e%2e, the resulting path collapses past the root of the source bucket. This behavior allows the path to resolve to folders belonging to other buckets, making it a classic confused-deputy attack.

Code Analysis

The vulnerability is primarily located in the path validation logic of the S3 API Gateway. In vulnerable versions of SeaweedFS, the validation of copy sources was insufficient, especially in the handler for multipart upload copy operations (CopyObjectPartHandler).

The following code comparison highlights how the vulnerability was introduced and subsequently remediated in the official patch. The fix ensures that both the parsed source bucket and the source object key conform to strict naming and path constraints before any filesystem operation occurs.

// Vulnerable implementation in weed/s3api/s3api_object_handlers_copy.go
// Prior to the patch, the copy part handler used a simple non-empty validation
if srcObject == "" || srcBucket == "" {
    glog.Errorf("CopyObjectPart: Invalid copy source - srcBucket=%q, srcObject=%q", srcBucket, srcObject)
    s3err.WriteErrorResponse(w, r, s3err.ErrInvalidCopySource)
    return
}

The patch introduces the ValidateCopySource helper, which is called by both the standard single-object copy handler and the multipart copy handler. This helper executes the standard bucket and object validation routines against the extracted values to block traversal segments.

// Patched implementation in weed/s3api/s3api_copy_validation.go
func ValidateCopySource(copySource string, srcBucket, srcObject string) error {
    // ... basic parsing logic ...
 
    // Reject '.' and '..' segments to ensure the source object remains constrained
    // within the boundary of the authorized source bucket.
    if !s3_constants.IsValidBucketName(srcBucket) || !s3_constants.IsValidObjectKey(srcObject) {
        return &CopyValidationError{
            Code:    s3err.ErrInvalidCopySource,
            Message: "Copy source contains invalid path segments",
        }
    }
 
    return nil
}

By calling IsValidObjectKey on the parsed srcObject, the application leverages existing path validation logic that flags any key containing path traversal components. This blocks the resolver from executing path-collapsing operations on the backend filer.

Exploitation and Attack Methodology

Exploiting CVE-2026-55874 requires standard authenticated S3 credentials with write permissions to at least one bucket. The attacker must also possess knowledge of, or be able to guess, the names of target buckets and specific object keys on the SeaweedFS deployment. Because S3 bucket naming schemes are often predictable, target identification is highly feasible in real-world scenarios.

To initiate the exploit, the attacker crafts a PUT request targeting their own authorized bucket, setting the destination file to any path. The attacker then injects the directory traversal sequence into the X-Amz-Copy-Source header, pointing back from their bucket and traversing forward into the victim's bucket.

PUT /attacker-bucket/exfiltrated-file.dat HTTP/1.1
Host: target-seaweedfs:8333
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/...
X-Amz-Copy-Source: /attacker-bucket/../victim-private-bucket/sensitive-data.xml

When the S3 API Gateway processes this request, it verifies the attacker's write permissions on /attacker-bucket/exfiltrated-file.dat. It then parses the X-Amz-Copy-Source header, leading the backend filer to fetch the data from the resolved path /buckets/victim-private-bucket/sensitive-data.xml. Once the server-side copy completes, the attacker can retrieve the exfiltrated object directly from their own bucket using a standard GET request.

The attack can also be mounted using various encoding techniques to bypass simplistic edge filters. The gateway's parser is vulnerable to standard URL encoding (%2e%2e), alternative path separators (such as backslashes ), and nested directory segments designed to escape deep structures. The dedicated regression test suite added in the patch confirms that all of these variants were viable vectors before the patch.

Impact Assessment

The security impact of CVE-2026-55874 is classified as High, with a CVSS v3.1 base score of 7.7. The attack vector is Network (AV:N), and the complexity is Low (AC:L), meaning it can be reliably exploited without specialized environment configurations. The vulnerability requires Low privileges (PR:L), as any user with valid S3 credentials can act as the attacker.

Crucially, the Scope metric is Changed (S:C) because the vulnerability allows an attacker to cross security boundaries. By forcing the gateway to read data from a bucket outside their administrative scope, the attacker completely undermines the isolation of the SeaweedFS S3 environment. Confidentiality is impacted at a High level (C:H), as all objects stored in any bucket on the deployment are exposed to unauthorized reading.

Because the vulnerability is limited to read operations via the copy mechanism, there is no direct threat to Integrity (I:N) or Availability (A:N). Attackers cannot overwrite or delete files in target buckets through this traversal exploit. However, the exposure of highly sensitive files, such as database backups, configuration files, and application secrets, can easily serve as a stepping stone for further compromise.

Remediation and Mitigation

The definitive remediation for CVE-2026-55874 is upgrading the SeaweedFS deployment to version 4.34 or later. The update introduces the necessary code changes in the S3 API Gateway component to strictly validate incoming copy requests. Deployments can be updated in-place without data migration, as the fix only affects the stateless gateway layer.

If an immediate upgrade is not feasible, organizations should implement virtual patching using a Web Application Firewall (WAF) or an API Gateway positioned in front of the SeaweedFS S3 interface. The WAF should be configured to inspect the X-Amz-Copy-Source header of all inbound PUT requests. Any request containing traversal sequences should be blocked immediately.

Additionally, security administrators should audit SeaweedFS S3 API logs for suspicious copy operations. Look for requests containing parent directory specifiers or percent-encoded variations in the S3 log metadata. Implementing continuous monitoring for unusual data access patterns from low-privilege accounts will help detect exploitation attempts in legacy deployments.

Fix Analysis (1)

Technical Appendix

CVSS Score
7.7/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
EPSS Probability
0.61%
Top 54% most exploited

Affected Systems

SeaweedFS

Affected Versions Detail

Product
Affected Versions
Fixed Version
SeaweedFS
seaweedfs
< 4.344.34
AttributeDetail
CWE IDCWE-22
Attack VectorNetwork
CVSS Score7.7
EPSS Score0.00606
Exploit Statuspoc
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1083File and Directory Discovery
Discovery
T1005Data from Local System
Collection
CWE-22
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

The software uses external input to construct a pathname that is intended to identify a file or directory that is located under a restricted directory, but the software does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location outside of the restricted directory.

Known Exploits & Detection

Official Test SuiteRegression test cases validating the behavior of the S3 copy source path traversal payloads.

Vulnerability Timeline

Vulnerability fixed in development branch commit
2026-06-11
SeaweedFS version 4.34 released
2026-07-08
GitHub Security Advisory GHSA-56wq-x3wv-3ff4 published
2026-07-08
CVE-2026-55874 assigned and published
2026-07-08

References & Sources

  • [1]SeaweedFS Fix Commit
  • [2]SeaweedFS Pull Request #9929
  • [3]SeaweedFS Release 4.34
  • [4]GitHub Security Advisory GHSA-56wq-x3wv-3ff4
  • [5]NVD CVE-2026-55874 Details
  • [6]CVE.org Record

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•20 minutes ago•CVE-2026-55841
7.5

CVE-2026-55841: Log Evasion and Tampering in Graylog FortiGate Syslog Parser

A high-severity log evasion and tampering vulnerability in Graylog's FortiGate key-value syslog parser allows unauthenticated remote attackers to modify, delete, or overwrite critical security log fields, potentially bypassing security controls and monitoring systems.

Alon Barad
Alon Barad
1 views•7 min read
•about 1 hour ago•CVE-2026-55867
5.3

CVE-2026-55867: Insecure Direct Object Reference in Graylog Access-Token Revocation

An Insecure Direct Object Reference (IDOR) vulnerability exists within the access-token revocation endpoint of Graylog. Authenticated users can exploit this flaw to delete access tokens belonging to other users, including high-privileged administrator accounts, thereby disrupting active integrations and API access.

Alon Barad
Alon Barad
2 views•7 min read
•about 2 hours ago•CVE-2026-55873
4.3

CVE-2026-55873: Improper Authorization in SeaweedFS S3Tables and Iceberg REST Management APIs

An improper authorization vulnerability in SeaweedFS versions 4.08 through 4.33 allows authenticated, low-privileged users to bypass directory isolation and perform unauthorized metadata operations within S3Tables and Iceberg REST interfaces. The vulnerability arises from an automatic collapse of account-less static identities to the default administrative principal, combined with a fail-open default policy configuration and self-referential authorization parameters in the table bucket listing routines. Together, these logical flaws expose administrative configurations and namespace architectures to unprivileged actors. The issue is resolved in version 4.34 by enforcing capability-based access checks, isolating fallback modes, and performing granular access verification on target buckets.

Alon Barad
Alon Barad
2 views•6 min read
•about 4 hours ago•CVE-2026-55779
5.4

CVE-2026-55779: Stored Cross-Site Scripting (XSS) in Silverstripe Archive Admin Restore

A Stored Cross-Site Scripting (XSS) vulnerability exists in the silverstripe/versioned package prior to version 3.2.1. When an administrator restores an archived page containing a crafted Title or URLSegment, the generated restoration message is rendered as CAST_HTML without proper sanitization. This allows malicious JavaScript to execute in the administrator's browser session, compromising the confidentiality and integrity of the CMS dashboard.

Amit Schendel
Amit Schendel
2 views•6 min read
•about 5 hours ago•CVE-2026-55784
7.5

CVE-2026-55784: Concurrent Request Context Overwrite in free5GC AUSF

A concurrency synchronization flaw (race condition) exists in the Authentication Server Function (AUSF) of the free5GC 5G core network implementation. In versions 1.4.4 and earlier, authentication contexts are stored in a global sync.Map keyed solely by the Subscriber Permanent Identifier (SUPI). If multiple concurrent authentication requests are received for the same SUPI, the active security parameters (such as keys and expected responses) are unconditionally overwritten, resulting in authentication failures for the legitimate user.

Alon Barad
Alon Barad
2 views•6 min read
•about 6 hours ago•CVE-2026-55785
3.7

CVE-2026-55785: Non-Constant-Time Cryptographic Comparison and Sensitive Information Leakage in free5GC AUSF

free5GC is an open-source implementation of the 5G core network. Prior to version 1.4.5, the Authentication Server Function (AUSF) component of free5GC performs cryptographic comparisons within its Service-Based Interface (SBI) handling logic using non-constant-time helpers. These comparison utilities return immediately upon encountering a mismatching character, creating a covert timing channel. Concurrently, the AUSF writes the expected validation vector to standard output logs at the INFO level, exposing sensitive cryptographic material to unauthorized processes or logging agents.

Amit Schendel
Amit Schendel
3 views•5 min read