CVE-2026-4139WordPress mCatFilter插件在0.5.2及以下版本中存在严重的跨站请求伪造(CSRF)漏洞。该漏洞的根本原因在于插件的`compute_post()`函数在处理设置更新时,完全缺失了随机数验证机制和用户权限检查。值得注意的是,该函数通过`plugins_loaded`钩子注册,会在网站的每个页面加载时自动执行,并直接利用`$_POST`数据调用`update_option()`来修改数据库中的插件配置。这种设计缺陷使得未经身份验证的远程攻击者可以通过构造恶意的HTML页面,诱骗已登录的管理员用户点击链接。一旦管理员访问,攻击者即可利用其会话权限篡改所有插件设置,包括类别排除规则、信息源排除标志以及标签页排除标志,从而破坏网站的功能完整性。
该漏洞的核心技术缺陷在于代码逻辑的不安全实现。在受影响版本的mCatFilter插件中,`compute_post()`函数被挂载到WordPress的`plugins_loaded`钩子上。这意味着无论用户访问网站的哪个页面,只要插件加载,该函数就会被触发。函数内部直接检查`$_POST`超级全局变量,如果发现特定数据,便直接调用`update_option()`函数将数据写入数据库,从而更新插件设置。
正常的安全开发规范要求,凡是涉及状态变更的操作,必须进行两步验证:首先是通过`check_ajax_referer()`或验证nonce字段来确保请求的合法性和防伪造性;其次是通过`current_user_can()`来确认当前用户是否具备管理设置的权限。然而,该插件完全省略了这些关键的安全检查。
攻击者利用这一缺陷,可以构造一个包含隐藏表单的恶意HTML页面。该表单的目标地址指向受害者的WordPress站点,并包含了修改插件设置所需的POST参数。当管理员被诱导访问此页面时,浏览器会自动携带管理员的Cookie身份凭证发送请求。由于服务器端没有验证Nonce和权限,插件会误认为这是管理员本人的合法操作,从而执行设置修改,导致安全防线被突破。