EMLOG Pro 2.6.2 emUnZip路径穿越CVE-2026-34607
EMLOG Pro 是开源 PHP 网站搭建与博客系统,没有复杂架构和冗余功能,核心围绕文章发布、分类管理、评论互动、SEO做深做稳。
一、基本情况
EMLOG Pro 的后台操作逻辑直白,无需学习成本,上传安装即可用,伪静态、自定义链接、图片管理、用户权限等基础功能原生自带。

EMLOG Pro 不用依赖大量插件即可满足日常建站,安全性持续迭代,运行稳定省心,适合不想折腾复杂系统、追求不折腾的建站用户。
栋科技漏洞库关注到 EMLOG Pro 在2.6.2及之前版本中存在的 emUnZip 路径穿越漏洞,追踪为CVE-2026-34607,CVSS 3.X评分8.8。
二、漏洞分析
CVE-2026-34607是 EMLOG Pro 在 2.6.2 及之前版本 emUnZip () 函数中的路径遍历漏洞(位于 include/lib/common.php 第 793 行)。
系统提取 ZIP 压缩包(插件 / 模板上传、备份导入)时,该函数直接调用 zip−>extractTo(path),未对 ZIP 内的文件名称进行安全过滤。
这导致已认证的管理员可上传构造好的 ZIP 包,其中包含带有 ../ 跳转符的文件,向服务器文件系统写入任意文件(包括 PHP 后门)。
通过写入 PHP WebShell,攻击者可以利用该漏洞实现远程代码执行(RCE)。
1、存在漏洞的代码(include/lib/common.php,第 793 行):
if (true === @$zip->extractTo($path)) {
$zip->close();
return 0;
}
2、解压前未对 ZIP 压缩包内的文件名进行校验。该函数仅针对.sql 文件检查文件扩展名,并未防范文件名中的路径遍历攻击。
3、攻击向量:
admin/plugin.php?action=upload_zip(插件上传)
admin/template.php?action=upload_zip(模板上传)
admin/data.php?action=import(备份导入)
4、修复建议
校验每个 ZIP 内的文件名,拒绝包含..的文件项:
for ($i = 0; $i < $zip->numFiles; $i++) {
$name = $zip->getNameIndex($i);
if (strpos($name, '..') !== false) {
$zip->close();
return -1;
}
}
三、POC概念验证
1、创建一个包含路径遍历文件名的 PHP 文件的 ZIP 压缩包:
管理员已设置登录后刷新可查看2、以已认证管理员身份通过插件上传接口上传。
3、解压后的文件 shell.php 被写入网站根目录,从而实现远程代码执行。
四、影响范围
EMLOG Pro <= 2.6.2
五、修复建议
EMLOG Pro >= 2.6.9
六、参考链接
管理员已设置登录后刷新可查看