GHSA-MMPX-JH39-WRV6: Stored Cross-Site Scripting in FileBrowser Quantum via SVG Rendering
Vulnerability ID: GHSA-MMPX-JH39-WRV6
CVSS Score: 5.4
Published: 2026-05-07
FileBrowser Quantum versions prior to v1.3.1-stable and v1.3.9-beta are vulnerable to Stored Cross-Site Scripting (XSS). The vulnerability manifests when the application serves user-uploaded Scalable Vector Graphics (SVG) files with the inline parameter. Due to the absence of a restrictive Content-Security-Policy (CSP) header, modern browsers execute embedded JavaScript within the application's origin context.
TL;DR
FileBrowser Quantum allows Stored XSS via malicious SVG files served inline due to a missing Content-Security-Policy header. Attackers can execute arbitrary JavaScript in a victim's session.
⚠️ Exploit Status: POC
Technical Details
- Vulnerability Type: Stored Cross-Site Scripting (XSS)
- CWE ID: CWE-79, CWE-693
- Attack Vector: Network
- Authentication Status: Required for upload, unauthenticated for victim execution
- Affected Component: backend/http/download.go
- Exploit Availability: Proof of Concept available
Affected Systems
- FileBrowser Quantum (github.com/gtsteffaniak/filebrowser)
-
FileBrowser Quantum: < v1.3.1-stable (Fixed in:
v1.3.1-stable) -
FileBrowser Quantum: < v1.3.9-beta (Fixed in:
v1.3.9-beta)
Code Analysis
Commit: 6bfc397
Added Content-Security-Policy header to mitigate inline SVG XSS execution.
func setContentDisposition(w http.ResponseWriter, r *http.Request, fileName string) {
dispositionType := "attachment"
if r.URL.Query().Get("inline") == "true" {
dispositionType = "inline"
+ // Inline SVG (and similar) can execute embedded scripts when opened as a top-level document;
+ // match upstream filebrowser mitigation.
+ w.Header().Set("Content-Security-Policy", "script-src 'none'")
}
// ...
}
Mitigation Strategies
- Update FileBrowser Quantum to version v1.3.1-stable or v1.3.9-beta.
- Configure reverse proxies to enforce a strict CSP on all file rendering endpoints.
- Block the
?inline=trueparameter via Web Application Firewall (WAF) if inline rendering is not required.
Remediation Steps:
- Identify the current version of FileBrowser Quantum deployed in the environment.
- Download the patched binary for v1.3.1-stable or v1.3.9-beta from the official repository releases.
- Stop the FileBrowser service.
- Replace the existing executable with the downloaded patched binary.
- Restart the service and verify that requests to file endpoints with
?inline=truereturn theContent-Security-Policy: script-src 'none'header.
References
- GitHub Advisory GHSA-mmpx-jh39-wrv6
- Fix Commit in gtsteffaniak/filebrowser
- Project Releases Page
- Go Vulnerability Database Entry
Read the full report for GHSA-MMPX-JH39-WRV6 on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)