Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-81028— ZLMediaKit downloadFile Root-Directory Confinement Bypass via Prefix Collision

Quick assessment

Affected
ZLMediaKit ZLMediaKit
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

ZLMediaKit 通过一组已配置的根目录来限制 API 的访问范围,但所使用的“前缀比较”机制未考虑目录边界。在 的配置加载器中,每个根目录均通过 构建;由于传入的相对路径参数为空字符串,该辅助函数返回的值末尾不包含路径分隔符。后续处理逻辑在满足 时即接受请求的路径,因此,仅名称以配置根目录字符串开头的同级目录也会通过该检查并被成功访问。另一项校验仅拒绝包含两个连续点号( )的路径,而上述情形并不触发该规则。相比之下,普通静态文件服务器在 中的同类限制检查使用了非空的第二个参数,会在比较前自动补全路径分隔符,因

CVSS 4.9 · Medium

Affected Version Matrix 1

VendorProduct Version RangeStatus
ZLMediaKit ZLMediaKit fa347d7dbe48dfdce525d3a0fdb92e576970ef9f affected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-81028

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
ZLMediaKit downloadFile Root-Directory Confinement Bypass via Prefix Collision
Source: CVE Program / CVE List V5
Vulnerability Description
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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N
Source: CVE Program / CVE List V5
Vulnerability Type
对路径名的限制不恰当(路径遍历)
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
ZLMediaKit ZLMediaKit fa347d7dbe48dfdce525d3a0fdb92e576970ef9f -

II. Public POCs for CVE-2026-81028

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-81028

登录查看更多情报信息。

Vendor Advisories for CVE-2026-81028 (1)

Proof of Concept for CVE-2026-81028 (1)

Vendor Pages for CVE-2026-81028 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-81028

No comments yet


Leave a comment