Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low-privilege JWT token
-
DeliveryAcquire victim tenant's TUS session ID
-
ExploitSend PATCH to victim session with attacker token
-
ExecutionInject arbitrary content into victim upload
-
PersistTUS upload completes
-
ImpactFile written to victim's restricted filer path
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires all three of the following conditions to be simultaneously true: (1) the SeaweedFS filer must have JWT signing configured and active (filerGuard enabled); (2) TUS resumable uploads must be enabled on the filer (the /.tus route must be accessible); and (3) the deployment must use prefix-restricted JWT tokens - specifically tokens with non-empty AllowedPrefixes fields - for multi-tenancy isolation. Attackers must already hold a valid JWT token scoped to at least one allowed prefix; completely unauthenticated exploitation is not possible given PR:L in the CVSS vector. The practical limiting factor is obtaining a foreign tenant's TUS session ID, which is not cryptographically secret but also not trivially guessable without network visibility or shared infrastructure access. Deployments without JWT prefix scoping, without TUS enabled, or operating in single-tenant mode are completely unaffected regardless of SeaweedFS version. |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L, score 7.6) accurately reflects the attack profile: network-accessible, low complexity, requiring only a low-privilege JWT token. The High integrity impact is well-justified - an attacker can write arbitrary content to filesystem paths that their token explicitly denies, completely defeating the multi-tenancy isolation model. The Low confidentiality impact reflects the ability to HEAD foreign sessions to read upload progress and size metadata. The Low availability impact captures the ability to DELETE other tenants' upload sessions mid-transfer. No EPSS score was provided in the input data and the vulnerability does not appear in CISA KEV, so no confirmed active exploitation exists at time of analysis. Real-world risk is significant specifically for multi-tenant SeaweedFS deployments that have both JWT prefix scoping and TUS uploads configured simultaneously - deployments missing either feature are entirely unaffected, which substantially narrows the exposed population. The AC:L rating is appropriate because no race condition or special timing is required; the only practical barrier is acquiring a foreign session ID, which is not cryptographically protected by the TUS protocol. The overall risk profile is moderate-to-high for affected configurations but the narrow prerequisites limit blast radius across the broader SeaweedFS install base. |
| Exploit ScenarioDerived | An attacker authenticated with a JWT token scoped to /buckets/attacker/ observes a co-tenant's in-progress TUS upload session ID - obtainable via shared infrastructure logs, network interception, or insider knowledge - targeting /buckets/secret/sensitive.bin. The attacker sends PATCH requests to the victim's session ID using their own valid restricted token, injecting malicious content; upon TUS upload completion, the tampered file lands at /buckets/secret/sensitive.bin, a path the attacker's token forbids, fully bypassing the AllowedPrefixes isolation. No public exploit code has been identified at time of analysis, but the commit diff and test case in GHSA-99q7-x53r-6j4g provide a clear reproduction path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 26, 2026
SeaweedFS 4.39's TUS resumable-upload handler fails to re-validate JWT prefix scoping on HEAD, PATCH, and DELETE operations against existing sessions, enabling a low-privilege authenticated tenant to hijack cross-tenant upload sessions. An attacker holding a valid but restricted JWT token can PATCH arbitrary content into another tenant's in-progress upload by reusing the victim's session ID, causing the completed file to land at a filesystem path the attacker's token explicitly forbids. No public exploit has been identified at time of analysis; a vendor-released patch is available in version 4.40.
RemediationAI
Upgrade to SeaweedFS version 4.40, which contains the complete fix across commits ce82e3a057080162a9fba11889157d2255815f71 and fa549e9c83b7799d512157d728f52052912831af available in the project repository. If immediate upgrade is not feasible, the most effective compensating control is to disable TUS resumable uploads at the filer configuration level, which eliminates the vulnerable handler entirely at the cost of resumable-upload functionality - standard non-TUS upload paths are unaffected. Alternatively, if TUS is operationally required, collapsing to a single-tenant JWT configuration (removing AllowedPrefixes scoping from tokens) eliminates the exploitable isolation boundary, though it removes multi-tenancy access control entirely. There is no known partial mitigation that preserves both TUS and JWT prefix multi-tenancy while avoiding the vulnerability in version 4.39. The vendor advisory is at https://github.com/seaweedfs/seaweedfs/security/advisories/GHSA-99q7-x53r-6j4g.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
SeaweedFS (CPE: cpe:2.3:a:seaweedfs:seaweedfs:4.39:*:*:*:*:*:*:*) implements the TUS resumable-upload protocol in its filer component and enforces multi-tenancy through JWT tokens carrying AllowedPrefixes scope constraints. The root cause is CWE-639 (Authorization Through User-Controlled Key / IDOR): the original code treated a TUS session ID as an implicit authorization boundary, performing JWT prefix scoping only at session creation (HTTP POST) and assuming subsequent HEAD, PATCH, and DELETE operations on an existing session by ID were implicitly authorized. Since TUS session IDs are not guaranteed to be secret, any tenant holding a valid token can reference a foreign session ID and manipulate it without the authorization layer consulting the session's stored TargetPath. The fix in commits ce82e3a and fa549e9 refactors checkJwtAuthorization to accept a lazy path-resolver function, and adds tusScopedPaths() which reads the session's stored TargetPath from filer storage for HEAD/PATCH/DELETE verbs, failing closed on lookup errors - ensuring prefix validation is applied on every operation, not only at creation.
Know when Seaweedfs gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L
PR:L confirmed by requirement for a valid JWT token; I:H reflects arbitrary cross-tenant file writes; C:L for session metadata exposure via HEAD.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
SeaweedFS is a distributed storage system for files and blobs. In version 4.39, the filer's TUS resumable-upload handler checks JWT allowed_prefixes scoping only when a session is created, letting a low-privilege tenant hijack another tenant's upload session to write content to filer paths their own token forbids. The HEAD, PATCH, and DELETE verbs that act on an existing session by its id never verify that the session's stored target path falls within the caller's allowed prefixes, so a tenant who obtains another upload's session identifier can PATCH attacker bytes into it and, on completion, have the file land at the victim's out-of-scope path. The same token can also DELETE other tenants' sessions and HEAD them to read upload progress and size, defeating the JWT prefix isolation. This vulnerability only affects deployments that configure filer JWT signing and have TUS uploads enabled. This issue is fixed in version 4.40.
Executive ViewAI
SeaweedFS 4.39 contains a cross-tenant data access vulnerability where authenticated users can hijack upload sessions belonging to other tenants, enabling unauthorized writes to files in restricted locations. This breaks tenant isolation in multi-tenant deployments and creates significant risk of data breach, corruption, and regulatory non-compliance. Organizations using this version must prioritize immediate remediation.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Server-side request forgery with response read-back in SeaweedFS distributed storage (versions prior to 4.24) lets anyon
Cross-tenant authorization bypass in SeaweedFS filer JWT path authorization allows any authenticated tenant to read and
Cross-bucket read/write in SeaweedFS before 4.30 lets remote attackers escape a bucket's namespace because the S3 API ga
Cross-tenant object deletion in SeaweedFS before 4.34 lets an authenticated S3 principal holding write access to just on
Authentication bypass in SeaweedFS filer before 4.24 exposes the SeaweedIdentityAccessManagement gRPC service without an
Authorization bypass in SeaweedFS versions 4.39 and earlier allows authenticated federated users to assume IAM roles the
Incorrect path authorization in SeaweedFS SFTP server (versions 3.88-4.39) allows an authenticated low-privilege user to
Incorrect authorization in SeaweedFS S3 API's PutObjectAcl handler allows an authenticated low-privilege S3 principal to
Unvalidated JSONP callback reflection in SeaweedFS before 4.30 enables cross-origin reads of cluster topology, volume se
seaweedfs v3.68 was discovered to contain a SQL injection vulnerability via the component /abstract_sql/abstract_sql_sto
EUVD-2026-66758
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB