数以百万计的WordPress网站被迫更新以修补关键插件漏洞

发布时间:2022-02-23 13:45

UpdraftPlus 漏洞允许不受信任的访问者下载完整的数据库备份

数以百万计的 WordPress 网站在过去一天收到了强制更新,以修复名为 UpdraftPlus 的插件中的一个严重漏洞。

强制性补丁是应 UpdraftPlus 开发人员的要求发布的,因为该漏洞的严重性允许不受信任的订阅者、客户和其他人只要在易受攻击的站点上拥有帐户,就可以下载该站点的私有数据库。数据库经常包含有关客户或站点安全设置的敏感信息,使数百万个站点容易遭受严重的数据泄露,导致密码、用户名、IP 地址等泄露

结果不好,容易被利用

UpdraftPlus 简化了备份和恢复网站数据库的过程,是 Internet 上使用最广泛的 WordPress 内容管理系统计划备份插件。它简化了到 Dropbox、Google Drive、Amazon S3 和其他云服务的数据备份。它的开发人员表示,它还允许用户安排定期备份,并且比竞争的 WordPress 插件更快并且使用更少的服务器资源。

“这个漏洞很容易被利用,如果被利用会产生非常糟糕的后果,”发现漏洞并私下向插件开发人员报告的安全研究员 Marc Montpas 说。“它使低权限用户可以下载站点的备份,其中包括原始数据库备份。低权限帐户可能意味着很多事情。定期订阅者、客户(例如在电子商务网站上)等。”

网站安全公司Jetpack的研究员 Montpas表示,他在对插件进行安全审计时发现了该漏洞,并于周二向 UpdraftPlus 开发人员提供了详细信息。一天后,开发人员发布了一个修复程序,并同意在安装了插件的 WordPress 网站上强制安装它。

WordPress.org 提供的统计数据 显示,周四有 170 万个网站收到了更新,截至发稿时还有超过 287,000 个网站安装了它。WordPress 表示该插件有 3+ 百万用户。

在周四披露该漏洞时,UpdraftPlus 写道:

此缺陷允许任何在 UpdraftPlus 处于活动状态的 WordPress 安装上登录的用户行使下载现有备份的权限,该权限本应仅限于管理用户。这是可能的,因为与检查当前备份状态相关的代码缺少权限检查。这允许获得一个内部标识符,该标识符在其他情况下是未知的,然后可用于在允许下载时通过检查。

这意味着,如果您的 WordPress 站点允许不受信任的用户使用 WordPress 登录,并且如果您有任何现有备份,那么您可能容易受到技术熟练的用户的攻击,该用户正在研究如何下载现有备份。如果您的网站包含任何非公开内容,则受影响的网站可能会因攻击者访问您网站的备份副本而导致数据丢失/数据被盗。我说“技术熟练”是因为那时还没有公开证明如何利用这个漏洞。目前,它依靠黑客对最新 UpdraftPlus 版本中的更改进行逆向工程来解决问题。但是,您当然不应该依赖这需要很长时间,而应该立即更新。如果您是 WordPress 网站上的唯一用户,或者如果您的所有用户都是可信的,那么您就不会受到攻击,

黑客听心跳

在他自己的披露中,蒙帕斯说这个漏洞源于几个缺陷。第一个是WordPress心跳功能的UpdraftPlus 实现。UpdraftPlus 没有正确验证发送请求的用户是否具有管理权限。这代表了一个严重的问题,因为该函数会获取所有活动备份作业的列表以及站点最新备份的日期。该数据中包含插件用于保护备份的自定义随机数。

“因此,攻击者可以针对这个心跳回调制定恶意请求,以获取有关该站点迄今为止最新备份的信息,其中将包含备份的随机数,”Montpas 写道。

下一个薄弱环节是maybe_download_backup_from_email函数。用于在允许用户下载备份之前验证用户是管理员的函数的变量容易受到黑客攻击,从而允许不受信任的人对其进行修改。

在另一项分析中,网络安全公司 Wordfence 的研究员 Ram Gall 写道:

问题是UpdraftPlus_Options::admin_page() === $pagenow支票。这要求将 WordPress$pagenow全局变量设置为options-general.php. 通常不允许订阅者访问此页面。但是,可以在某些服务器配置上欺骗此变量,主要是 Apache/modPHP。与该研究人员也发现的 WordPress < 5.5.1 中的先前漏洞类似,可以向例如wp-admin/admin-post.php/ /wp-admin/options-general.php?page=updraftplus.

虽然订阅者不能访问options-general.php,但他们可以访问admin-post.php。通过将请求发送到此端点,他们可以欺骗$pagenow检查,认为该请求是针对 的options-general.php,而 WordPress 仍然认为该请求是针对admin-post.php.

一旦通过此检查,攻击者将需要提供备份随机数和type参数。最后,由于所有备份都按时间戳索引,因此攻击者需要添加一个时间戳,该时间戳要么是暴力破解的,要么是从之前获得的备份日志中获得的。

如果您在 WordPress CMS 上运行一个站点并且它安装了 UpdraftPlus,那么它很可能已经更新。可以肯定的是,请检查插件版本号是否为免费版本的 1.22.4 或更高版本,或高级版本的 2.22.4 或更高版本

客户热线:037125966675

客户服务中心
云产品 服务器 合 作                  Skype