CVE-2026-104081 KodExplorer 路径遍历漏洞
影响攻击者可覆盖任意文件,最终导致远程代码执行
KodExplorer 4.55 之前版本的 app/function/helper.function.php 中 unzip_pre_name() 函数存在路径遍历漏洞。该函数仅做一次非递归的 str_replace() 过滤,可被 "....//" 等构造文件名绕过,配合 KodArchive.class.php 中 PclZip 的 extract() 调用未设置 PCLZIP_OPT_EXTRACT_DIR_RESTRICTION 选项,导致解压时可写入任意路径。
影响范围
KodExplorer 4.55 之前的版本受影响,具体受影响版本范围暂无更详细的公开信息。
漏洞详情
漏洞类型为路径遍历(Zip Slip)。成因是解压前对文件名中的目录穿越序列过滤不彻底,单次非递归替换无法处理 "....//" 这类嵌套构造,且解压库未限制解压目标目录。已认证攻击者可上传含穿越路径的恶意 ZIP,覆盖核心 JavaScript 等任意文件,进而植入存储型 XSS 接管管理员账户,再通过上传 PHP 文件实现远程代码执行。
利用条件与风险
利用需攻击者具备已认证账户并可上传 ZIP 压缩包;成功利用可覆盖任意文件、接管管理员账户并执行任意代码,实战风险高。
修复建议
建议升级至 KodExplorer 4.55 或更高版本;临时缓解措施包括限制压缩包上传与解压功能、对解压文件名做递归规范化校验并限制解压目录,暂无其他公开信息。
KodExplorer before 4.55 contains a path traversal vulnerability in the unzip_pre_name() function within app/function/helper.function.php, where a single non-recursive str_replace() sanitization pass can be bypassed using crafted filenames like “….//”, combined with PclZip’s extract() call in KodArchive.class.php lacking the PCLZIP_OPT_EXTRACT_DIR_RESTRICTION option. Authenticated attackers can upload a malicious ZIP archive with traversal sequences to overwrite arbitrary files such as core JavaScript assets, enabling stored XSS that leads to admin account takeover and subsequent remote code execution via unrestricted PHP file upload.