Executive Summary
A critical argument injection vulnerability (CVE-2026-54337) has been disclosed in Fireshare, a self-hosted media and link sharing platform. The flaw carries a CVSS score of 9.8 and lets an unauthenticated attacker write or overwrite arbitrary files on the host by smuggling extra command-line flags into the backend's video-processing call during upload. A fix is available in version 1.6.14.
CVSS Score: 9.8 (Critical)
Vulnerability Overview
| Attribute | Value |
|---|---|
| CVE ID | CVE-2026-54337 |
| CVSS Score | 9.8 (Critical) |
| CWE | CWE-88 — Argument Injection |
| Type | Unauthenticated Arbitrary File Write/Overwrite |
| Attack Vector | Network (no authentication required) |
| Privileges Required | None |
| User Interaction | None |
| Location | Public video upload API (/api/upload/public) |
Affected Versions
| Project | Affected Versions | Fixed Version |
|---|---|---|
| Fireshare (ShaneIsrael/fireshare) | ≤ 1.6.13 | 1.6.14 |
How the Exploit Works
Fireshare's public upload handler accepts a filename and folder value from the multipart form submission and passes elements derived from them into an ffmpeg-style command line used to process the uploaded video. Because those values aren't strictly separated from command arguments, an attacker can smuggle flags such as -select_streams and -o into the invocation, redirecting where the processed output gets written.
A public proof-of-concept demonstrates the technique with a crafted curl request:
curl -F "file=@video.mp4;filename=target -select_streams v.mp4" \
-F "folder=target_path -o /destination/path" \
http://TARGET/api/upload/publicBecause the injected -o flag controls the output destination, the attacker effectively gets an arbitrary file write primitive — no login, API key, or prior access required.
Impact of Successful Exploitation
| Impact | Description |
|---|---|
| Arbitrary File Write | Create or overwrite files reachable by the service account |
| Database Corruption | Overwriting db.sqlite renders the instance unusable (denial of service) |
| Data Loss | Destructive overwrites of stored media/config without authentication |
| Potential Pivot | Depending on deployment (bind mounts, shared volumes), writable paths outside /data could expand impact |
Fireshare's default deployment runs the web process under a restricted user with write access effectively limited to /data, /processed, /images, and /videos — which caps the blast radius on a stock install, but does not require authentication to trigger.
Remediation
Step 1: Update to Version 1.6.14
Pull the latest Fireshare image or release and redeploy:
docker compose pull fireshare
docker compose up -d fireshareConfirm the running version matches 1.6.14 or later before treating the instance as remediated.
Step 2: Restrict Exposure
If immediate patching isn't possible:
- Do not expose the
/api/upload/publicendpoint directly to the internet — place it behind authentication at a reverse proxy or VPN. - Review the container's filesystem permissions to ensure the service account cannot write outside its intended data directories.
- Monitor for unexpected writes to
db.sqliteor other core application files.
Step 3: Check for Compromise
# Look for unexpected file modification timestamps outside normal upload activity
find /data /processed /images /videos -newer /path/to/known-good-reference -type f
# Confirm the SQLite database hasn't been overwritten or corrupted
sqlite3 /data/db.sqlite "PRAGMA integrity_check;"References
- GitHub Security Advisory — GHSA-hmh2-6g84-q8jx
- NIST NVD — CVE-2026-54337
- 4qu4r1um/CVE-2026-54337-PoC