LOW 3.1

CVE-2026-58371: SeaweedFS Reflected XSS in JSON Callback – Cluster Information Disclosure

SeaweedFS versions before 4.30 have a reflected cross-site scripting (XSS) vulnerability in their JSON response handling. An attacker can craft a malicious web page that, when visited by a user with network access to a SeaweedFS cluster, silently extracts sensitive information like cluster topology, server locations, and file listings. The vulnerability exists because SeaweedFS echoes back user-supplied callback parameters in responses labeled as JavaScript, without proper validation or security headers to prevent browsers from executing the reflected content.

Source data · NVD / CISA · public domain

CVSS
3.1 · 3.1 LOW · CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N
Weaknesses (CWE)
CWE-79
Affected products
0 configuration(s)
Published / Modified
2026-06-30 / 2026-07-14

NVD description (verbatim)

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.

5 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

SeaweedFS's writeJson helper function (weed/server/common.go) performs unsafe reflection of the callback query parameter into HTTP response bodies served with Content-Type: application/javascript. The vulnerability affects all JSON endpoints utilizing this helper—including unauthenticated master endpoints (/dir/status, /dir/lookup, /cluster/status), volume server /status, and filer directory listing—which are bound to 0.0.0.0 by default. The response lacks X-Content-Type-Options: nosniff headers and CORS allow-listing. An attacker can load these endpoints via HTML script tags from a cross-origin context, causing the browser to execute the reflected callback string. MIME-sniffing behaviors in certain clients may further interpret the reflected content as HTML, expanding attack surface.

Business impact

An attacker can leverage this vulnerability to passively discover your SeaweedFS cluster architecture, including the number and location of volume servers, their gRPC ports, file object identifiers, and directory structure—information valuable for follow-up attacks or competitive reconnaissance. If SeaweedFS stores sensitive data, exposure of file identifiers and directory listings could aid in targeted data theft or unauthorized access attempts. The vulnerability requires user interaction (visiting a malicious web page) and only affects organizations where users with network visibility to SeaweedFS nodes browse untrusted websites, but the default-open network posture of SeaweedFS increases risk in environments with permissive network segmentation.

Affected systems

All SeaweedFS deployments version 4.29 and earlier are affected. The vulnerability is present by default because SeaweedFS typically listens on 0.0.0.0 without mandatory whiteList configuration or security.toml enforcement. Clusters with default network bindings are at highest risk. Deployments that have restricted network access via firewall rules or reverse-proxy whitelisting (e.g., only allowing internal IPs to reach SeaweedFS endpoints) face reduced risk from the cross-origin attack vector, though the underlying unsafe reflection persists.

Exploitability

Exploitation requires that a user with network access to the affected SeaweedFS instance visits a malicious third-party web page controlled by the attacker. The attacker's page can silently fetch cluster information via JSONP-style script tag injection. No authentication is required because the vulnerable endpoints (/dir/status, /dir/lookup, /cluster/status, /status) are unauthenticated by default. The CVSS score of 3.1 (LOW) reflects the requirement for user interaction and the confidentiality-only impact; however, the ease of crafting a proof-of-concept and the default-open posture warrant careful consideration in network-exposed environments.

Remediation

Upgrade SeaweedFS to version 4.30 or later, which addresses the unsafe callback reflection. In the interim, restrict network access to SeaweedFS endpoints via firewall rules, virtual private networks, or reverse proxies that enforce authentication and validate request origins. Additionally, configure SeaweedFS with a security.toml file and use the -whiteList flag to restrict which IP ranges can access administrative and status endpoints. Educate users not to visit untrusted websites from systems with network access to SeaweedFS, though this is not a reliable long-term control.

Patch guidance

Apply the upgrade to SeaweedFS 4.30 or later as soon as feasible. Review your release notes and deployment procedures to ensure the upgrade does not disrupt ongoing operations. Verify after patching that all JSON endpoints no longer reflect the callback parameter in response bodies and that responses include X-Content-Type-Options: nosniff headers. If you cannot upgrade immediately, implement network-level access controls to restrict who can reach SeaweedFS endpoints and validate that your security.toml and -whiteList configurations are in place and tested.

Detection guidance

Monitor HTTP access logs for requests to SeaweedFS JSON endpoints (/dir/status, /dir/lookup, /cluster/status, /status) that include a 'callback' parameter in the query string. Look for patterns where the callback value appears verbatim in the response body. Check for requests originating from unexpected external sources or user-agents consistent with automated reconnaissance. Review browser security logs and web proxy logs for cross-origin script requests to your SeaweedFS servers. Implement WAF or reverse-proxy rules to block or alert on requests with callback parameters to these endpoints.

Why prioritize this

Although this vulnerability carries a LOW CVSS score due to the user-interaction requirement and confidentiality-only impact, it should be prioritized for remediation in environments where SeaweedFS is network-exposed and cluster topology is sensitive. The attack is trivial to execute (a simple HTML page with script tags) and requires no authentication. If you have not restricted network access to SeaweedFS or have users browsing untrusted web content from systems that can reach your cluster, patch promptly. Organizations with strict network segmentation or internal-only SeaweedFS deployments can prioritize this as a lower-urgency update, though the underlying design flaw warrants correction.

Risk score, explained

The CVSS 3.1 score of 3.1 (LOW) is justified by the Unauthenticated network vector (AV:N), High attack complexity due to the user-interaction requirement (AC:H), and the restriction to Confidentiality impact (C:L, I:N, A:N). However, this score underweights the practical risk in default-open SeaweedFS deployments serving internal or shared infrastructure. Real-world risk depends heavily on network topology: clusters accessible only to trusted internal users or behind authentication layers face minimal risk, while internet-facing or lightly-segmented deployments face elevated risk. Treat the CVSS as a lower bound and adjust prioritization based on your network exposure and data sensitivity.

Frequently asked questions

Does this vulnerability allow an attacker to modify or delete data in SeaweedFS?

No. The vulnerability allows only read-access to cluster metadata and directory listings via reflection of the callback parameter. The attacker cannot modify files, delete data, or escalate to arbitrary code execution through this vulnerability alone. However, the exposed cluster topology and file identifiers may enable follow-up attacks if other vulnerabilities exist.

Are SeaweedFS deployments behind a firewall or VPN automatically safe from this vulnerability?

Largely yes, if the firewall or VPN prevents external users from reaching the SeaweedFS endpoints. The attack requires that a user with network access to SeaweedFS visit a malicious web page; if SeaweedFS is not reachable from the attacker's network, the attack cannot succeed. However, you should still upgrade to 4.30 to remove the underlying design flaw, as network controls can change or be misconfigured.

What is the difference between this vulnerability and a traditional CSRF attack?

This is a JSONP/cross-origin data leakage attack, not CSRF. The attacker is not tricking the browser into modifying or deleting data on the user's behalf; instead, they are reading sensitive response data that the browser fetches via a script tag. JSONP-style reflection of user input into JavaScript responses is a known anti-pattern that enables this attack when proper CORS and MIME-type controls are absent.

If I restrict network access to SeaweedFS, do I still need to upgrade?

Yes. Upgrade to 4.30 at your next maintenance window. Network controls are a valuable interim defense, but they can be circumvented, misconfigured, or relaxed over time. Patching eliminates the underlying vulnerability and is the permanent fix. Use network restrictions as a complementary, not a replacement, control.

This analysis is provided for informational and educational purposes. While based on publicly available vulnerability data, it is not a substitute for your own security assessment, vendor advisories, or professional incident response. Always verify patch availability and compatibility with your specific SeaweedFS version and environment before deploying updates. Network and application controls should be layered and regularly tested. If you believe you have been affected by this vulnerability, consult your security team and the official SeaweedFS project documentation. SEC.co makes no warranties regarding the completeness or accuracy of this information and disclaims liability for any decisions made in reliance upon it. Source: NVD (public-domain), retrieved 2026-08-09. Analysis generated by SEC.co (claude-haiku-4-5).