Backuply 1.5.9 修复可导致 WordPress 站点接管的二阶 SQL 注入漏洞
600,000 WordPress Sites Affected by SQL Injection Vulnerability in Backuply WordPress Plugin
Wordfence 披露 Backuply 1.5.8 及更早版本存在二阶 SQL 注入漏洞,受影响插件有超过 600,000 个活跃安装。订阅者及以上权限的攻击者可在个人简介中植入恶意 SQL,管理员随后恢复包含该内容的数据库备份时,漏洞会被触发并可最终取得站点控制权。
漏洞原理、触发条件、修复版本和防火墙规则时间线完整,便于站点管理员判断风险并安排升级。
2026年9月17日,我们收到了一份关于 Backuply 的二阶 SQL 注入漏洞报告。Backuply 是一款拥有超过 600,000 个活跃安装量的 WordPress 插件。该漏洞允许拥有订阅者级别或更高访问权限的已认证攻击者存储恶意 SQL 载荷;当管理员随后恢复数据库备份时,该载荷会被执行,最终使攻击者能够将权限提升为管理员并接管网站。
感谢 daroo 通过 Wordfence 漏洞赏金计划发现并负责任地报告了这一漏洞。这位研究人员因此获得了 $1,352.00 的赏金。我们的使命是通过纵深防御保障 WordPress 安全,因此我们投资于高质量的漏洞研究,并通过漏洞赏金计划与具备此类水准的研究人员合作。我们致力于通过检测和预防漏洞来提升 WordPress 生态系统的安全性,这是采用多层次安全方法的关键环节。
Wordfence Premium、Wordfence Care 和 Wordfence Response 用户已于 2026年9月24日收到一条防火墙规则,用于防御针对 WordPress.org 上托管的 Backuply 已知漏洞利用的已知攻击。使用 Wordfence 免费版的站点将在 30 天后的 2026年10月24日获得相同的保护。
我们于 2026年9月28日向 Backuply 团队披露了这一漏洞,开发者于 2026年10月1日发布了完整修复版本。我们要表彰 Backuply 团队作出的迅速响应和及时修补。
我们敦促用户尽快将网站更新至最新的已修复版本,即本文发布时的 Backuply 1.5.9 版本。
Wordfence Intelligence 漏洞摘要
Backuply <= 1.5.8 - 通过恢复功能进行已认证(订阅者+)二阶 SQL 注入,进而提升权限
8.0
CVSS 评级
8.0(高危)
CVE-ID
CVE-2026-93953
受影响版本
<= 1.5.8
已修复版本
1.5.9
赏金
$1,352.00
受影响软件
Backuply – 备份、恢复、迁移和克隆 [backuply]
研究人员
daroo
适用于 WordPress 的 Backuply——备份、恢复、迁移和克隆插件——存在通过“个人简介”字段触发的 SQL 注入漏洞(二阶注入,通过恢复过程触发)。所有版本直至 1.5.8(含)均受影响,原因是用户提供的参数转义不足,且对现有 SQL 查询未进行充分的预处理。Backuply 在写入备份 SQL 转储(wp_usermeta)时,会在 INSERT 语句中原样导出“个人简介”字段的值。当管理员随后恢复此类备份时,恶意载荷会突破该 INSERT 语句,并追加由攻击者控制、以完整数据库权限执行的 SQL。这使得已通过身份验证且拥有订阅者级别或更高访问权限的攻击者能够向数据库写入任意数据——尤其是将 wp_options 中的 default_role 选项更新为 administrator(并启用开放用户注册)——从而使随后注册的账户自动获得管理员角色,最终导致权限提升并完全接管网站。由于该注入在恢复过程中于 INSERT 语句内执行,不会向攻击者返回响应,因此这一原语被用于修改数据库记录,而非直接读取现有数据。
更多详情 >
技术分析
Backuply 是一款热门的 WordPress 插件,用于创建备份以及恢复、迁移和克隆网站。在创建数据库备份时,它会将每个表的行导出到 SQL 转储中;在恢复时,它会执行转储中的每条语句来重建数据库。
此漏洞属于二阶 SQL 注入,即恶意输入会在一个操作中被存储,只有在之后处理另一项操作时才会变得危险。
恶意输入通过“个人简介”字段植入,任何拥有账户的用户都可以在自己的个人资料中设置该字段。WordPress 会将该值以纯文本形式存储在 wp_usermeta 表中。
创建数据库备份时,Backuply 会将存储的个人简介作为普通的带引号值导出到 SQL 转储中的 INSERT 语句内,并正确地将其作为数据进行转义。缺陷出现在恢复过程中。导入程序会执行转储中的每条完整语句,然后对同一条语句应用一个未锚定的正则表达式,以查找站点的旧表前缀。由于该表达式未限定为真实的 CREATE TABLE 标题,也不会跳过带引号的值,因此它还会匹配存储的个人简介中的文本。当该语句另外包含字符串 backuply_version 时,捕获的文本会在未经任何验证的情况下被拼接进第二条 UPDATE 查询:
$res = backuply_mysql_query($sql, $conn);
// Find Prefix in create tables
if(preg_match('/CREATE\s+TABLE\s+[.]*[`]*(.*)options[`]*\s*\(/is', $sql, $prefix)){
if(!empty($prefix[1])){
$wp_old_prefix = $prefix[1];
}
}
// If backuply_version found, then execute
if(!empty($wp_old_prefix) && preg_match('/backuply_version/is', $sql)){
$bacuply_version_query = "UPDATE ".$wp_old_prefix."options SET `option_value`='".$GLOBALS['backuply_version']."' WHERE `option_name`='backuply_version';";
backuply_mysql_query($bacuply_version_query, $conn);
}由于捕获的值会被直接放入 UPDATE 语句中,就仿佛它是可信的表前缀,因此攻击者可以精心构造个人简介,使捕获到的文本完全不是前缀,而是自己选择的完整 UPDATE 语句。通过让捕获部分以注释字符结尾,插件自身尾随的 SQL 会被丢弃,最终仅执行攻击者的语句。
注入的语句针对 wp_options 表中的两行,即 default_role 和 users_can_register,将 default_role 设置为 administrator,并将 users_can_register 设置为 1。由于 wp_options 在 wp_usermeta 之前恢复,因此当注入查询运行时,这些更改已经生效,并会在恢复完成后保留。
这两个选项的重要性在于,它们能将一次数据库写入变成对整个网站的接管。当启用 users_can_register 时,WordPress 会公开用户注册表单;当创建新用户时若未明确指定角色,WordPress 会为其分配 default_role 中存储的值。
当管理员恢复包含恶意值的备份后,公开注册功能会被启用,新账户的默认角色也会被设置为管理员。随后,攻击者只需通过标准的 WordPress 注册表单注册一个新账户,该账户就会被自动授予管理员角色,从而完全控制网站。
与所有权限提升漏洞一样,这可能导致网站被完全攻陷。
重要说明
我们希望提请注意,该漏洞要求管理员恢复一个在攻击者的恶意个人简介值被存储之后创建的数据库备份。正是此次恢复操作导致被注入的 SQL 得以执行。由于创建和恢复备份正是该插件的核心用途,因此这是一项常规操作,但在执行恢复之前,被注入的 SQL 不会运行。
披露时间线
2026-09-17
我们收到了漏洞提交
一名安全研究员通过 Wordfence 漏洞赏金计划提交了 Backuply 中的二阶 SQL 注入漏洞。
2026-09-19
我们验证了报告
我们的团队确认了概念验证,并验证了报告。
2026-09-24
我们为 Premium 用户部署了防火墙规则防火墙规则
Wordfence Premium、Wordfence Care 和 Wordfence Response 用户已收到一项防火墙规则,用于抵御针对 WordPress.org 上托管的 Backuply 漏洞的已知利用方式。
2026-09-28
我们向厂商披露了漏洞
我们向 Backuply 团队发送了完整的漏洞披露详情。
2026-10-01
厂商发布了修复版本 1.5.9补丁
厂商发布了该插件的完整修复版本 1.5.9。
2026-10-24
我们将为免费用户部署防火墙规则防火墙规则
使用免费版 Wordfence 的网站将在 30 天后获得同样的保护。
Wordfence 采取的行动
厂商/外部采取的行动
结论
在这篇博客文章中,我们详细介绍了 Backuply 插件中的一个二阶 SQL 注入漏洞,该漏洞影响截至并包括 1.5.8 在内的所有版本。拥有订阅者级别访问权限及以上的已认证威胁行为者可以存储恶意 SQL 载荷;该载荷会在管理员恢复数据库备份时执行,使攻击者能够启用公开注册、将默认角色设置为管理员,并注册一个新的管理员账户,最终导致网站被完全攻陷。
鉴于该漏洞的严重性,我们建议 WordPress 用户尽快确认其网站已更新至最新修复版本的 Backuply。
Wordfence Premium、Wordfence Care 和 Wordfence Response 用户已于 September 24, 2026 收到一项防火墙规则,用于抵御针对 WordPress.org 上托管的 Backuply 漏洞的已知利用方式。使用免费版 Wordfence 的网站将在 30 天后,即 October 24, 2026,获得同样的保护。
如果您认识在自己的网站上使用此插件的人,我们建议您与他们分享此安全公告,以确保其网站持续安全,因为该漏洞带来了重大风险。
这篇报道《Backuply WordPress 插件中的 SQL 注入漏洞影响 600,000 个 WordPress 网站》最初发布于 Wordfence。
来源:Wordfence 官方博客 · https://www.wordfence.com/blog/2026/10/600000-wordpress-sites-affected-by-sql-injection-vulnerability-in-backuply-wordpress-plugin/
部分链接为推广/关联链接。