Skip to main content

SeaweedFS CVE-2026-58371

| EUVDEUVD-2026-40359 LOW
Cross-site Scripting (XSS) (CWE-79)
2026-06-30 VulnCheck GHSA-7cpf-frp7-pm75
2.3
CVSS 4.0 · Vendor: VulnCheck

Severity by source

Vendor (VulnCheck) PRIMARY
2.3 LOW
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
3.1 LOW

Network-delivered JSONP attack requires victim browser network access (AV:N) and visiting attacker page (UI:R, AC:H); no auth on endpoints (PR:N); only cluster metadata confidentiality impact (C:L), no integrity or availability effect.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
P
Scope
X

Lifecycle Timeline

2
Analysis Generated
Jun 30, 2026 - 17:24 vuln.today
CVSS changed
Jun 30, 2026 - 17:22 NVD
3.1 (LOW) 2.3 (LOW)

DescriptionCVE.org

SeaweedFS before 4.30 reflects the callback query parameter verbatim into responses served with Content-Type application/javascript in the shared writeJson helper (weed/server/common.go), with no callback-name validation, no X-Content-Type-Options: nosniff header, and no CORS allow-list. Every JSON endpoint that uses writeJson - including the unauthenticated master endpoints /dir/status, /dir/lookup and /cluster/status, the volume server /status, and the filer directory listing, all reachable in the default configuration (no -whiteList, no security.toml, bound to 0.0.0.0) - can therefore be loaded cross-origin via a script tag with a chosen callback, letting a third-party web page read cluster topology, volume server URLs and gRPC ports, file identifiers, and directory listings. Because the callback string is reflected at the start of the body and no nosniff header is sent, MIME-sniffing clients may also interpret the reflected content as HTML.

AnalysisAI

Unvalidated JSONP callback reflection in SeaweedFS before 4.30 enables cross-origin reads of cluster topology, volume server URLs, gRPC ports, file identifiers, and directory listings from unauthenticated endpoints reachable in the default deployment configuration. The shared writeJson helper in weed/server/common.go concatenates the callback query parameter verbatim into application/javascript responses with no allowlist validation, no X-Content-Type-Options: nosniff header, and no CORS policy, allowing attacker-controlled pages to load these endpoints via script tags and receive cluster metadata through the injected callback. A public proof-of-concept exists; the vulnerability is not in CISA KEV; the CVSS 4.0 score of 2.3 reflects constrained direct impact due to required user interaction and high attack complexity, though the leaked reconnaissance data elevates chained-attack risk.

Technical ContextAI

SeaweedFS is an open-source distributed blob store and file system written in Go (CPE: cpe:2.3:a:seaweedfs:seaweedfs:*:*:*:*:*:*:*:*). The vulnerability is rooted in CWE-79 (Improper Neutralization of Input During Web Page Generation - Cross-site Scripting), specifically in the JSONP pattern implemented by the writeJson shared helper. JSONP is a legacy cross-origin data-sharing technique where a server wraps its JSON payload in a caller-supplied JavaScript function name; modern deployments replace it with CORS, but SeaweedFS implements JSONP without any of the security controls that make it safe: no regex or allowlist validation of the callback name, no X-Content-Type-Options: nosniff header to prevent MIME confusion, and no CORS allowlist. Every JSON-emitting endpoint calls this helper, exposing the master server (/dir/status, /dir/lookup, /cluster/status), the volume server (/status), and the filer directory listing. Because the default configuration binds to 0.0.0.0 with no -whiteList flag and no security.toml, all these endpoints are reachable without authentication. The absence of nosniff also means MIME-sniffing browsers may interpret the reflected callback string as HTML, broadening the potential toward reflected XSS.

RemediationAI

The primary fix is to upgrade SeaweedFS to version 4.30 or later; the patch was introduced via commit 77dcb20a7485074d37340985d53103f94538abe6 (PR #9686, release at https://github.com/seaweedfs/seaweedfs/releases/tag/4.30) and adds callback-name validation and the missing X-Content-Type-Options: nosniff header to writeJson. For deployments that cannot upgrade immediately, the most effective compensating control is to deploy a reverse proxy (e.g., nginx) in front of the master, volume, and filer ports that strips the callback query parameter from all incoming requests - this eliminates the JSONP vector entirely while preserving normal JSON operation, with the trade-off that any legitimate JSONP consumers in the environment will break. Alternatively, launching SeaweedFS with the -whiteList flag to restrict allowed client IP ranges or binding the service to a loopback or private interface instead of 0.0.0.0 prevents untrusted browsers from reaching the endpoints cross-origin. Adding X-Content-Type-Options: nosniff at the reverse-proxy layer as a response header mitigates the MIME-sniffing XSS variant independently. Network-layer controls (firewall rules blocking public access to SeaweedFS ports 9333 and 8080) also reduce attack surface with no application-level side effects.

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-72921 HIGH POC
8.1 Aug 11

Cross-tenant authorization bypass in SeaweedFS filer JWT path authorization allows any authenticated tenant to read and

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-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

Share

CVE-2026-58371 vulnerability details – vuln.today

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