Skip to main content

SeaweedFS EUVDEUVD-2026-56159

| CVE-2026-72921 HIGH
Incorrect Authorization (CWE-863)
2026-08-11 GitHub_M GHSA-gv5w-hfx8-8cwq
8.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain valid scoped JWT for /tenantX
  2. Delivery
    Identify sibling tenant paths sharing /tenantX string prefix
  3. Exploit
    Send HTTP request to /tenantXsuffix/target path
  4. Execution
    Filer passes flawed strings.HasPrefix check
  5. Impact
    Read or overwrite cross-tenant files

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the attacker to hold a valid SeaweedFS filer JWT token that is scoped to at least one path prefix (i.e., the attacker is an authenticated but lower-privileged tenant in the system). The deployment must use SeaweedFS's JWT path-prefix authorization feature with multiple tenants whose assigned path prefixes share a common string prefix - for example, /tenant1 and /tenant1234 co-existing in the same filer. Exploitation is bounded to filer read and write operations within the reachable sibling namespaces; it does not affect the SeaweedFS master server, volume servers, or cluster integrity. Deployments using a single tenant, root-scoped tokens, or no JWT authorization at all are not affected. The absence of path-component normalization also permitted ../ traversal within scoped tokens prior to the fix, representing an additional exploitation condition for path-escaped access.

Impact

The NVD CVSS 8.1 score accurately reflects the risk profile: AV:N/AC:L/PR:L/UI:N means any network-reachable holder of a low-privilege scoped JWT can exploit this with no setup friction, and C:H/I:H means both cross-tenant reads and writes are achievable. The real-world risk is directly proportional to the deployment's use of path-scoped multi-tenancy - single-tenant or root-token deployments are entirely unaffected. No EPSS score was provided in the intelligence, and the vulnerability is not listed in CISA KEV, indicating no confirmed mass exploitation at time of analysis. However, the flaw is trivially exploitable once the bypass pattern is known, and the mechanism is now publicly documented in the fix's test cases. The secondary risk of path traversal (../ segments bypassing subtree restrictions) was also fixed by the same change, suggesting the pre-4.24 authorization surface was broader than the primary finding alone. No conflicting signals between CVSS and description exist - the network vector and low-privilege requirement are internally consistent.

Exploit ScenarioDerived

A tenant who has been issued a filer JWT scoped to /acme sends a GET request to the SeaweedFS filer API targeting /acmecorp/contracts/nda.pdf. The filer's pre-4.24 authorization check calls strings.HasPrefix("/acmecorp/contracts/nda.pdf", "/acme"), which returns true, and the response returns a competitor tenant's confidential document. The same token can issue a PUT request to overwrite or corrupt data in the /acmecorp subtree. No exploit tooling is required beyond a standard HTTP client and a legitimately issued JWT.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 public PoC Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 11, 2026

Cross-tenant authorization bypass in SeaweedFS filer JWT path authorization allows any authenticated tenant to read and write data belonging to sibling tenants whose path names share a string prefix. Versions prior to 4.24 are affected: a scoped JWT issued for /tenant1 inadvertently passes the authorization check for /tenant1234, /tenant1-old, and any other path that begins with the same character sequence, because the check used Go's raw strings.HasPrefix rather than a path-component boundary comparison. No public exploit code has been identified at time of analysis, but the bypass is mechanically trivial for any holder of a valid scoped token and the exact attack patterns are documented in the fix's test suite.

RemediationAI

Upgrade SeaweedFS to version 4.24 or later, confirmed fixed via GitHub release tag 4.24 (https://github.com/seaweedfs/seaweedfs/releases/tag/4.24), PR #9439 (https://github.com/seaweedfs/seaweedfs/pull/9439), and commit 05ed5c9ae8a2a45101b52b61d02f170d20d587ff. If immediate upgrade is not feasible, a partial workaround is to ensure all tenant path prefixes are suffix-disambiguated at provisioning time - for example, all tenant paths should terminate with a trailing slash (e.g., /tenant1/ rather than /tenant1), which the updated pathHasComponentPrefix logic handles correctly and which prevents the naive lexicographic confusion. Note that this workaround requires reissuing all existing scoped JWTs with the corrected prefix format and does not protect against dot-dot traversal risk present in the same code path. It does not replace the patch and should be treated as a temporary measure only.

Affected VersionsENISA

seaweedfs < 4.24

Affected Packages

go github.com/seaweedfs/seaweedfs fix: 0.0.0-20260512171048-05ed5c9ae8a2
euvd seaweedfs fix: 4.24

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

SeaweedFS is a distributed object storage system written in Go that supports multi-tenant access control via JWT tokens containing an allowed_prefixes claim. The filer server component (weed/server/filer_server_handlers.go) enforces these prefix restrictions inside maybeCheckJwtAuthorization by calling strings.HasPrefix(r.URL.Path, prefix) - a byte-level string comparison with no awareness of path component boundaries. CWE-863 (Incorrect Authorization) precisely identifies the root cause: the predicate admits a superset of intended paths because /tenant1 is a byte-level prefix of /tenant1234. The fix, introduced in PR #9439 and commit 05ed5c9ae8a2a45101b52b61d02f170d20d587ff, replaces the check with pathHasComponentPrefix(), which first normalizes both paths using path.Clean (also neutralizing ../ traversal and duplicate slashes), then checks for exact equality or that the request path begins with prefix + /. The PR diff test cases explicitly enumerate the bypass scenarios that were previously exploitable.

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

Vendor (GitHub_M) PRIMARY 8.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 8.1 HIGH

Exploitation requires a valid scoped JWT (PR:L); filer is network-accessible with no additional complexity; cross-tenant read and write are both achievable with no availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
SUSE HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Aug 11, 2026 - 15:17 EUVD
CVE Published
Aug 11, 2026 - 14:28 cve.org
HIGH 8.1

DescriptionCVE.org

SeaweedFS is a distributed storage system. Prior to 4.24, the weed/server/filer_server_handlers.go allowed_prefixes authorization check used strings.HasPrefix on raw path strings, so a filer JWT scoped to /tenant1 also authorized sibling paths such as /tenant1234, /tenant1-old, and /tenant1backup, enabling cross-tenant reads and writes with a valid scoped token. This issue is fixed in version 4.24.

Latest POC

1 public PoC link from github

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

SeaweedFS filer versions prior to 4.24 contain a cross-tenant authorization bypass affecting multi-tenant deployments: an authenticated user with a scoped JWT token for one tenant path can read and write data from sibling tenants if their path names share a prefix. No public exploit identified at time of analysis, but the bypass is mechanically trivial for any token holder. This exposes organizations to inter-tenant data breaches without additional compromise.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Enforce JWT token expiration and rotate all existing scoped tokens immediately; (2) Deploy application-level path-component boundary validation before delegating to SeaweedFS authorization checks; (3) Implement detailed access logging and alerts for cross-tenant path access attempts; (4) Establish network-layer isolation between tenant storage clusters if architecture permits; (5) Communicate upgrade timeline to customers relying on multi-tenant isolation.

Threat Intelligence Overview

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Medium
popular open-source distributed storage used in cloud-native environments
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

60
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +40
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-73080 CRITICAL POC
9.3 Aug 11

Server-side request forgery with response read-back in SeaweedFS distributed storage (versions prior to 4.24) lets anyon

CVE-2026-54917 HIGH POC
7.8 Jun 25

Cross-bucket read/write in SeaweedFS before 4.30 lets remote attackers escape a bucket's namespace because the S3 API ga

CVE-2026-58372 HIGH POC
7.2 Jun 30

Cross-tenant object deletion in SeaweedFS before 4.34 lets an authenticated S3 principal holding write access to just on

CVE-2026-72920 CRITICAL
9.8 Aug 11

Authentication bypass in SeaweedFS filer before 4.24 exposes the SeaweedIdentityAccessManagement gRPC service without an

CVE-2026-77298 HIGH
8.7 Aug 26

Authorization bypass in SeaweedFS versions 4.39 and earlier allows authenticated federated users to assume IAM roles the

CVE-2026-77317 HIGH
8.1 Aug 26

Incorrect path authorization in SeaweedFS SFTP server (versions 3.88-4.39) allows an authenticated low-privilege user to

CVE-2026-77368 HIGH
7.6 Aug 26

SeaweedFS 4.39's TUS resumable-upload handler fails to re-validate JWT prefix scoping on HEAD, PATCH, and DELETE operati

CVE-2026-77611 HIGH
7.1 Aug 26

Incorrect authorization in SeaweedFS S3 API's PutObjectAcl handler allows an authenticated low-privilege S3 principal to

CVE-2026-58371 LOW POC
2.3 Jun 30

Unvalidated JSONP callback reflection in SeaweedFS before 4.30 enables cross-origin reads of cluster topology, volume se

CVE-2024-40120 MEDIUM POC
6.5 May 16

seaweedfs v3.68 was discovered to contain a SQL injection vulnerability via the component /abstract_sql/abstract_sql_sto

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Module for Package Hub 15 SP5 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP6 Affected
openSUSE Leap 15.5 Affected
openSUSE Leap 15.6 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy