Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the MWP-Firewall domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/E4wU9yBtpX5OW19y/wpf202503/public_html/wp-includes/functions.php on line 6121

Deprecated: Creation of dynamic property SureCart\Licensing\Updater::$cache_key is deprecated in /home/E4wU9yBtpX5OW19y/wpf202503/public_html/wp-content/plugins/MWP-Firewall/licensing/src/Updater.php on line 22
SecuPress Free ≤ 2.3.9: Broken Access Control Vulnerability

[CVE-2025-3452] 保护您的 WordPress 免受未经授权的插件安装

admin

了解 SecuPress Free ≤ 2.3.9 破坏访问控制漏洞

2025年4月28日,安全研究人员披露了SecuPress Free WordPress插件(版本≤2.3.9)中的一个重大漏洞。该漏洞编号为CVE-2025-3452,允许任何经过身份验证的用户安装任意插件,从而有效绕过WordPress内置的功能检查。实际上,低权限用户可以提升权限,并在您的网站上嵌入后门、恶意软件或其他攻击工具。

在本次深入探讨中,我们将:

  • 检查根本原因和利用路径
  • 评估现实世界的影响和风险
  • 描述官方修复和最佳缓解策略
  • 展示 WP-Firewall 如何保护您的网站现在和将来

CVE-2025-3452 概览

属性 细节
漏洞 ID CVE-2025-3452 / PSID 792fcc2482c1
插件 SecuPress 免费版
受影响的版本 ≤2.3.9
修复版本 2.3.10
漏洞类型 访问控制失效(OWASP A5)
所需权限 订户
CVSS v3.1 评分 6.5(中等)
披露日期 2025年4月28日
研究员 迈克迈尔斯

访问控制失效是指未能执行适当的授权检查。在一个配置良好的 WordPress 网站中,订阅用户只能管理自己的个人资料、阅读内容以及发表评论。他们绝对无法安装或激活插件——这些权限属于管理员。

当插件引入损坏的访问控制缺陷时,它可能会:

  • 省略 current_user_can() 检查
  • 跳过随机数验证(check_admin_referer())
  • 无法验证请求来源

这种疏忽为未经授权的行为打开了大门。


2.1 根本原因

在 SecuPress Free ≤ 2.3.9 版本中,处理插件安装请求的例程未验证用户权限。具体如下:

  1. AJAX 端点(例如,admin-ajax.php?action=secupress_install_plugin)接受来自任何登录用户的请求。
  2. 代码从未调用 current_user_can('install_plugins') 或验证管理员随机数。
  3. 只要用户经过身份验证(即使是作为订阅者),他们就可以提供插件 ZIP URL 或 slug。
  4. 该程序获取并安装插件,从而秘密提升订阅者的权限。
// SecuPress <=2.3.9 中假设的易受攻击的代码片段 
add_action('wp_ajax_secupress_install_plugin',函数(){
$plugin_slug = sanitize_text_field( $_POST['slug'] );
// 这里没有能力检查!
// 这里没有 nonce 验证!
$upgrader = new Plugin_Upgrader();
$upgrader->安装( “https://downloads.wordpress.org/plugin/{$plugin_slug}.zip” ) ;
wp_send_json_success();
});

2.2 所需权限

  • 最低角色:订阅者
  • 效果:插件安装保留给 install_plugins 功能,默认情况下只有管理员才具有该功能。

由于 SecuPress 代码跳过了此检查,任何订阅者都可以按“安装”并将新代码添加到您的网站。


3.1 权限提升

一旦订阅者可以安装插件,他们就可以:

  • 删除嵌入后门的恶意插件
  • 通过安装用户管理插件将自己提升为管理员
  • 通过日志清理插件隐藏活动

3.2 恶意软件注入

任意插件安装允许攻击者加载以下插件:

  • 按需执行PHP代码
  • 与命令和控制服务器通信
  • 收集用户数据、信用卡或个人信息

3.3 供应链攻击

即使您运营一个小博客,恶意插件也可以:

  1. 利用驱动下载感染访客
  2. 将流量重定向至钓鱼网站或广告欺诈网站
  3. 利用您的域名声誉进行垃圾邮件活动

4.1 CVSS v3.1 细分(评分:6.5)

属性 细节
漏洞 ID CVE-2025-3452 / PSID 792fcc2482c1
插件 SecuPress 免费版
受影响的版本 ≤2.3.9
修复版本 2.3.10
漏洞类型 访问控制失效(OWASP A5)
所需权限 订户
CVSS v3.1 评分 6.5(中等)
披露日期 2025年4月28日
研究员 迈克迈尔斯

乐谱解读
6.5/10 表示中等严重程度。虽然风险不小,但任何订阅级账户都极易利用此漏洞。在开放注册的社区网站中,风险甚至更大。

4.2 OWASP Top 10 对齐

  • A5:访问控制失效
  • 此漏洞是关键功能缺失授权的典型例子。

5.1 更新至 SecuPress Free 2.3.10 或更高版本

插件作者于 2025 年 4 月 28 日发布了 2.3.10 版本。此更新恢复了正确的功能检查并添加了一个随机数:

add_action('wp_ajax_secupress_install_plugin',函数(){     
// 强制执行管理员角色
如果(!current_user_can('install_plugins')){
wp_send_json_error('权限不足',403);
}
// 验证真正的请求来源
check_admin_referer('secupress-install-plugin');
// 现在可以安全安装
$plugin_slug = sanitize_text_field( $_POST['slug'] );
$upgrader = new Plugin_Upgrader();
$upgrader->安装( “https://downloads.wordpress.org/plugin/{$plugin_slug}.zip” ) ;
wp_send_json_success();
});

5.2 如何更新

  1. 仪表板 → 插件 → 可用更新。
  2. 如果自动更新被禁用,请单击“立即更新”。
  3. 验证插件列表中的插件版本是否为 2.3.10 或更高版本。

5.3 强化你的站点

  • 将用户注册限制为仅受信任的角色。
  • 对任何贡献者角色强制实施双因素身份验证。
  • 定期检查您的用户列表中是否存在未知帐户。

即使修补后,采取多层安全措施也是明智之举。WP-Firewall 提供:

6.1 托管 Web 应用程序防火墙 (WAF)

  • 实时规则集可防御 SQLi、XSS、LFI、RCE。
  • 对已知的 WordPress 攻击签名进行第 7 层过滤。

6.2 持续恶意软件扫描

  • 与官方存储库哈希值相比,自动进行文件完整性检查。
  • 立即对可疑文件发出警报并隔离。

6.3 OWASP 十大风险缓解措施

内置规则引擎专门针对 WordPress 漏洞进行了调整 - 涵盖 A1 到 A10,优先考虑访问控制和身份验证绕过。

6.4 自动虚拟补丁

当新的漏洞(如 CVE-2025-3452)被披露时,WP-Firewall 可以在防火墙级别部署虚拟补丁 - 甚至在您应用官方更新之前阻止漏洞利用尝试。

6.5 事件响应和报告

  • 仪表板警报总结了被阻止的攻击。
  • 供法医分析的详细日志。
  • 重大事件的电子邮件/短信通知。

使用基本防御增强您的网站

使用 WP-Firewall 免费计划保护您的基础

体验零成本保护,涵盖您管理的每个 WordPress 网站。使用基础(免费)套餐,您可以获得:

  • 托管防火墙和无限带宽
  • Web 应用程序防火墙规则每日更新
  • 自动恶意软件扫描和 OWASP 十大风险缓解

立即开始强化您的网站 - 注册 WP-Firewall 免费计划:
👉 https://my.wp-firewall.com/buy/wp-firewall-free-plan/


  1. 最小特权切勿轻易分配管理员或编辑角色。
    谨慎使用订阅者或贡献者角色,并在不再需要时撤销访问权限。
  2. 定期更新使 WordPress 核心、插件和主题保持最新。
    启用 WordPress 的自动小版本更新。
  3. 强身份验证对所有管理员级别的用户强制使用复杂密码和双因素身份验证。
    考虑在您的登录表单上采用 reCAPTCHA 或类似的解决方案。
  4. 代码审查和审计对于自定义或第三方插件,审查代码的功能检查和随机数。
    在部署到生产环境之前,使用暂存环境进行测试。
  5. 监控用户活动利用跟踪登录尝试和角色变化的插件或服务。
    立即调查异常或重复失败的登录。
  6. 虚拟修补采用具有虚拟修补的 WAF 来屏蔽未知或零日漏洞。
    这为以可控的方式测试和应用官方修复赢得了时间。

SecuPress Free ≤ 2.3.9 版本的漏洞警示我们:任何授权检查的缺失都可能造成灾难性的后果。即使是像“订阅者”这样无害的用户账户,也可能成为网站全面接管的入口点。

关键要点:

  • 始终更新到最新的插件版本。
  • 在每个 AJAX/action 钩子中强制执行能力检查 (current_user_can()) 和随机数。
  • 采用分层安全方法:防火墙、恶意软件扫描程序、虚拟修补。
  • 认真监控并强化用户角色。

通过将警惕的补丁管理与 WP-Firewall 等先进的 Web 应用程序防火墙相结合,您可以领先攻击者一步 - 保护您的内容、您的客户和您的声誉。

注意安全,并记住:在安全方面,每一次检查都很重要。


wordpress security update banner

免费接收 WP 安全周刊 👋
立即注册
!!

注册以每周在您的收件箱中接收 WordPress 安全更新。

我们不发送垃圾邮件!阅读我们的 隐私政策 了解更多信息。