gtsteffaniak/filebrowser · Security
FileBrowser Quantum: Stored XSS in public share page via unsanitized share metadata (text/template misuse)
- GHSA ID
- GHSA-r633-fcgp-m532
- CVE ID
- CVE-2026-30934
- Severity
- high
- Published
- Updated
- CVSS
- 8.9 · CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:L
- CVSS v3
- 8.9 · CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:L
Description
Summary
Stored XSS is possible via share metadata fields (e.g., title, description) that are rendered into HTML for /public/share/<hash> without context-aware escaping. The server uses text/template instead of html/template, allowing injected scripts to execute when victims visit the share URL.
Details
The server renders public/index.html using text/template and injects user-controlled share fields (title/description/etc.) into HTML contexts. text/template does not perform HTML contextual escaping like html/template. Because share metadata is persistent, the payload becomes stored and executes whenever a victim opens the affected share page.
Relevant code paths:
backend/http/static.go(template rendering and share metadata assignment)backend/http/httpRouter.go(template initialization)frontend/public/index.html(insertion points for title/description and related fields)
PoC
- Login as a user with share creation permission.
- Create a share (
POST /api/share) with malicious metadata:title = </title><script>alert("xss")</script><title>
- Open the resulting
/public/share/<hash>URL in a browser. - Expected: Payload is safely escaped and displayed as text.
- Actual: JavaScript executes in victim's browser (stored XSS).
Tested on Docker image: gtstef/filebrowser:stable (version v1.2.1-stable).
Impact
- Arbitrary script execution in application origin.
- Potential account/session compromise, CSRF-like action execution, data exfiltration from authenticated contexts.
- Affects anyone (including unauthenticated visitors) opening the malicious share URL.
- The XSS is stored and persistent — no social engineering beyond sharing the link is required.
CWEs
- CWE-79 · Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
References
- https://github.com/gtsteffaniak/filebrowser/security/advisories/GHSA-r633-fcgp-m532 ↗
- https://github.com/gtsteffaniak/filebrowser/releases/tag/v1.2.2-stable ↗
- https://github.com/gtsteffaniak/filebrowser/releases/tag/v1.3.1-beta ↗
- https://nvd.nist.gov/vuln/detail/CVE-2026-30934 ↗
- https://pkg.go.dev/vuln/GO-2026-4660 ↗
- https://github.com/advisories/GHSA-r633-fcgp-m532 ↗