Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to SFTP with valid low-privilege credentials
-
DeliveryIdentify sibling tenant path sharing attacker's permitted string prefix
-
ExploitIssue SFTP read or write request targeting sibling path
-
ExecutionBare strings.HasPrefix check grants access across ACL boundary
-
ImpactRead or overwrite peer-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 | Three conditions must all hold: (1) the SeaweedFS SFTP service must be running and network-accessible - this requires explicit operator configuration; (2) the attacker must possess a valid SFTP account with a path-scoped permission entry (e.g., /tenants/alice with read, write, or list permissions); (3) a sibling path must exist in the same parent directory whose name begins with the same characters as the attacker's permitted root (e.g., /tenants/alice-archive must exist as a real directory containing another tenant's data). Exploitation is strictly limited to authenticated users - unauthenticated access to the SFTP endpoint is not implied. The naming collision between tenant paths is the key structural prerequisite: if no sibling path shares the string prefix, the vulnerability has no practical effect in that environment. The home directory check shares the same flaw, but the primary exploitation path is through the explicit per-path permission entries, which are the documented multi-tenancy mechanism. |
| Impact | The CVSS 3.1 score of 8.1 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N) accurately reflects the core risk: the attack is network-reachable, requires no elevated privileges beyond a valid SFTP account, involves no interaction from another party, and yields both full read and write access to peer-tenant data. Real-world risk is strongly deployment-dependent - it is high in multi-tenant SeaweedFS environments where SFTP is the access layer and multiple tenants share a parent directory, and near-zero in single-tenant or fully trusted deployments. EPSS data is absent from available intelligence sources, so exploitation probability cannot be quantified. The CVE is not in CISA KEV at time of analysis, and no standalone weaponized POC has been identified. However, the public security advisory and fix commit together provide a complete description of the vulnerable code path, meaning any authenticated user who reads the advisory can construct an exploit with minimal effort. The naming-collision precondition (a sibling path must exist) is a genuine limiting factor, but in real multi-tenant deployments this condition is routinely met by operational naming conventions. |
| Exploit ScenarioDerived | An attacker with a valid SFTP account scoped to /tenants/alice connects using a standard SFTP client and requests /tenants/alice-archive/secret.txt - because the ACL check evaluates strings.HasPrefix('/tenants/alice-archive/secret.txt', '/tenants/alice') as true, access is granted and the peer tenant's file contents are returned. If the attacker's account carries write permission, they can issue a file-create or overwrite operation against the sibling path through the same mechanism, corrupting or replacing another tenant's data without any credential theft or privilege escalation beyond their own valid account. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 26, 2026
Incorrect path authorization in SeaweedFS SFTP server (versions 3.88-4.39) allows an authenticated low-privilege user to cross configured ACL boundaries and access or overwrite sibling tenants' files. The SFTP permission check used a bare string-prefix comparison, so a user scoped to /tenants/alice was also permitted access to any path beginning with those same characters - such as /tenants/alice-archive or /tenants/alice2 - without requiring a directory-component boundary. No public exploit code has been identified at time of analysis, though the public fix commit and advisory together fully document the vulnerable pattern, materially lowering exploitation difficulty for authenticated users.
RemediationAI
Upgrade to SeaweedFS 4.40, which resolves the flaw by replacing the bare strings.HasPrefix call with a boundary-aware pathWithin() function; the fix is available at https://github.com/seaweedfs/seaweedfs/commit/29981f8d24a62e9571962c4534fb23c48c00bae2 and is detailed in advisory GHSA-fvpg-g364-j8vh. If an immediate upgrade is not feasible, operators can reduce exposure by redesigning tenant path assignments to avoid any case where one permitted path is a string prefix of a sibling path - for example, ensuring /tenants/alice-backend and /tenants/alice never coexist as separate scoped roots, which eliminates the naming-collision precondition. A more aggressive workaround is to disable the SFTP service entirely and route client access through a different interface, accepting the loss of SFTP-based access as a trade-off. Restricting each scoped SFTP user to a unique top-level directory (e.g., /alice/ instead of /tenants/alice/) also reduces but does not eliminate risk on vulnerable versions, as the underlying check remains flawed.
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 is a distributed object and file storage system that ships a built-in SFTP server for client access, configurable with per-user home directories and explicit path-scoped permissions. The authorization logic in weed/sftpd/sftp_permissions.go used strings.HasPrefix(filepath, p) to determine whether a requested path fell within a user's granted scope. This string-prefix test does not enforce path-component boundaries: /tenants/alice is a legitimate string prefix of /tenants/alice-archive, so the check incorrectly returned a match and granted access. The same flaw affected the HomeDir boundary check. CWE-863 (Incorrect Authorization) precisely describes this failure - the system performed authorization but used the wrong predicate. The fix in 4.40 introduces a pathWithin() helper that requires the candidate to either exactly equal the base path or begin with base + '/', correctly establishing containment on directory boundaries. CPE: cpe:2.3:a:seaweedfs:seaweedfs:*:*:*:*:*:*:*:* (versions 3.88 through 4.39).
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:H/I:H/A:N
SFTP is network-accessible (AV:N), valid credentials required (PR:L), naming-collision condition is environmental not complex (AC:L), and no availability impact is described.
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 versions from 3.88 through 4.39, the SFTP server evaluates configured path permissions with a literal string-prefix comparison, so a user scoped to a path is also granted the same access to any sibling path whose name merely begins with the same characters. A user granted access to /tenants/alice therefore also matches /tenants/alice-archive, /tenants/alice2, and similar siblings, because the check does not require a path-component boundary. An authenticated low-privilege SFTP user with a root home directory and narrow path permissions can thereby cross the configured ACL boundary to read another tenant's files, and to overwrite them if granted write, all through the documented SFTP service with its own valid credentials. This issue is fixed in version 4.40.
Executive ViewAI
SeaweedFS SFTP server versions 3.88-4.39 contain a path authorization flaw allowing authenticated users to access files outside their assigned tenant scope, potentially exposing or modifying sensitive data across tenant boundaries in multi-tenant deployments. Organizations using affected versions require immediate action to prevent unauthorized cross-tenant data access. No vendor patch is currently available, making compensating controls critical for security.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict SFTP access to trusted administrative users and operators only; implement network segmentation with firewall enforcement to isolate tenant directories; enable detailed audit logging of SFTP operations to detect unauthorized cross-tenant access; enforce application-level file-access controls independent of SeaweedFS directory permissions; consider disabling SFTP functionality entirely if not operationally critical. Maintain close monitoring of vendor security advisories for patch release.
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
SeaweedFS 4.39's TUS resumable-upload handler fails to re-validate JWT prefix scoping on HEAD, PATCH, and DELETE operati
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-66767
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB