ZLMediaKit confines the downloadFile API to a configured set of root directories with a prefix comparison that does not account for directory boundaries. The configuration loader in server/WebApi.cpp builds each root with File::absolutePath("", item, true); because the relative-path argument is empty that helper returns the value without a trailing separator. The handler then accepts a requested path when start_with(file_path, root) holds, so a sibling directory whose name merely begins with the configured root string satisfies the test and is served. The only other guard rejects a path containing two dots, which this requires none of. The equivalent confinement check for the ordinary static file server in src/Http/HttpFileManager.cpp computes its root with a non-empty second argument, which appends the separator before comparing, and so is not affected. The endpoint requires the configured API secret, so this grants no privilege beyond what that secret already implies, but it reads files outside the directory the operator confined it to, and the reference container runs the server as root.
CVE-2026-81028
Score 4.9 from GitHub Security Advisory published 2026-08-26. a secondary CVSS source baseline 4.9; sources differ by 0.0.
- Lower severity and no public exploit yet
No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.
- CVSS v3
- 4.9
- EG Score
- 4.9(high)
- EG Risk
- 22(Track)EG Risk 22/100SSVC: Track
EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).
How it’s computedSeverity49% × 45%Exploitation0% × 40%Automatability0% × 15%Action: Routine — remediate on your standard cadence. - EPSS PROB
- 0%
- EPSS %ILE
- 28%
- KEV
- Not listed
Published
August 26, 2026
Last Modified
August 28, 2026
Advisory Details (4)
Auto-updated Aug 26, 2026ZLMediaKit downloadFile Root-Directory Confinement Bypass via Prefix Collision | Advisories | VulnCheck
https://www.vulncheck.com/advisories/zlmediakit-downloadfile-root-directory-confinement-bypass-via-prefix-collisionZLMediaKit/server/WebApi.cpp at fa347d7dbe48dfdce525d3a0fdb92e576970ef9f · ZLMediaKit/ZLMediaKit · GitHub
https://github.com/ZLMediaKit/ZLMediaKit/blob/fa347d7dbe48dfdce525d3a0fdb92e576970ef9f/server/WebApi.cpp[BUG] downloadFile API root-directory confinement bypass via directory-name prefix collision · Issue #4817 · ZLMediaKit/ZLMediaKit · GitHub
https://github.com/ZLMediaKit/ZLMediaKit/issues/4817GitHub - ZLMediaKit/ZLMediaKit: WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT/STUN/TURN server and client framework based on C++11 · GitHub
https://github.com/ZLMediaKit/ZLMediaKitVendor Advisories for CVE-2026-81028(1)
These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.
Weakness Classification(1)
MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.
Data Freshness Timeline
(refreshed 15× in last 7d / 15× in last 30d)
Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.
- 2026-08-30 01:22 UTCEPSS rescore
- 2026-08-29 19:30 UTCEG score recompute
- 2026-08-29 19:30 UTCGHSA enrichment
- 2026-08-28 21:42 UTCEPSS rescore
- 2026-08-28 20:44 UTCEG score recompute
- 2026-08-28 20:44 UTCGHSA enrichment
- 2026-08-28 19:49 UTCEG score recompute
- 2026-08-28 19:48 UTCGHSA enrichment
- 2026-08-28 14:12 UTCGHSA enrichment
- 2026-08-27 15:25 UTCEG score recompute
- 2026-08-27 15:24 UTCGHSA enrichment
- 2026-08-27 14:25 UTCEPSS rescore
- 2026-08-26 16:37 UTCEG score recompute
- 2026-08-26 15:55 UTCEG score recompute
- 2026-08-26 15:54 UTCMITRE cvelistV5first tracked
Related CVEs(same CWE)
Frequently asked(5)
What is CVE-2026-81028?
When was CVE-2026-81028 disclosed?
Is CVE-2026-81028 actively exploited?
What is the CVSS score of CVE-2026-81028?
How do I remediate CVE-2026-81028?
Dependency Blast Radius
Explore the affected products and dependency analysis for CVE-2026-81028
Is Your Infrastructure Affected by CVE-2026-81028?
EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.