首页 网络安全 正文
  • 本文约1034字,阅读需5分钟
  • 173
  • 0

Perfmatters 2.5.9 任意文件覆盖漏洞CVE-2026-4351

摘要

栋科技漏洞库关注到 Perfmatters 在 2.5.9 及之前版本中存在的任意文件覆盖漏洞,现已被追踪为CVE-2026-4351,CVSS 3.X评分 8.1。

Perfmatters 是 pian Jackson 与 pett Jackson 开发的 WordPress 轻量性能优化插件,主打精细控资产、减前端臃肿、轻量化数据库。

一、基本情况

Perfmatters 是用于优化 WordPress 网站加载速度的性能插件,不含全站缓存,需与缓存插件(如 LiteSpeed、WP Rocket)配合使用。

该插件替代传统缓存插件前端优化短板,通过精细禁用无用资源、精准加载关键资产、数据库清理,提升Core Web Vitals与加载速度。

Perfmatters 2.5.9 任意文件覆盖漏洞CVE-2026-4351

Perfmatters是 WordPress 中轻量精细型性能插件的首选,用最小开销实现最大性能提升,适合追求极致速度、有一定技术基础的用户。

栋科技漏洞库关注到 Perfmatters 在 2.5.9 及之前版本中存在的任意文件覆盖漏洞,现已被追踪为CVE-2026-4351,CVSS 3.X评分 8.1。

二、漏洞分析

CVE-2026-4351漏洞是WordPress 的 Perfmatters 插件在截至 2.5.9(含)的所有版本中存在的一个路径遍历导致的任意文件覆盖漏洞。

CVE-2026-4351漏洞源于 PMCS::action_handler() 方法在处理批量activate/deactivate操作时未进行任何权限校验或随机令牌验证所致。

PMCS::action_handler() 处理 snippets 激活(activate)或停用(deactivate)批量操作时未进行任何权限检查或 Nonce 安全令牌验证。

$_GET['snippets'][] 参数值未经净化直接传入 Snippet::activate()/Snippet::deactivate(),进而调用 Snippet::update() ,

最终通过file_put_contents()使用遍历路径写入文件,这使得攻击者可以通过 $_GET['snippets'][] 参数构造路径穿越序列。

该参数未经处理便传递至 Snippet::update() 方法,最终由 file_put_contents() 函数执行写入。

拥有订阅者(Subscriber)级别及更高权限的已认证远程攻击者,可以使用固定的 PHP 文档注释内容,以借此覆盖服务器上任意文件。

虽然写入内容为固定 PHP 注释块(docblock),但通过破坏 .htaccess 或 index.php 等关键系统文件导致整个网站拒绝服务(DoS)。

三、影响范围

Perfmatters <= 2.5.9

四、修复建议

Perfmatters > 2.5.9

五、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接