2021 年 7 月 13 日在 WooCommerce 中检测到的严重漏洞——你需要知道的

已发表: 2021-07-15

最后更新时间:2021 年 7 月 23 日

2021 年 7 月 13 日,安全研究员 Josh 通过我们的 HackerOne 安全计划发现并负责任地披露了一个与 WooCommerce 和 WooCommerce Blocks 功能插件有关的严重漏洞。

得知该问题后,我们的团队立即进行了彻底调查,审核了所有相关代码库,并为每个受影响的版本(90 多个版本)创建了一个补丁来修复该问题,该补丁自动部署到易受攻击的商店。

我有一家 WooCommerce 商店——我应该采取什么措施?

WooCommerce 5.5.1 的自动软件更新于 2021 年 7 月 14 日开始向所有运行每个插件受影响版本的商店推出,但我们仍然强烈建议您确保使用最新版本。 对于 WooCommerce,这是5.5.2 * 或您的发布分支中可能的最高数字。 如果您还运行 WooCommerce Blocks,您应该使用该插件的 5.5.1 版本。

重要提示:随着 2021 年 7 月 23 日 WooCommerce 5.5.2 的发布,上述自动更新过程已停止。

更新到补丁版本后,我们还建议:

  • 更新您网站上任何管理员用户的密码,特别是如果他们在多个网站上重复使用相同的密码
  • 轮换您网站上使用的任何支付网关和 WooCommerce API 密钥。

下面有关于这些步骤的更多信息。

* WooCommerce 5.5.2 于 2021 年 7 月 23 日发布。此版本中包含的修复与最近的安全漏洞无关。

我如何知道我的版本是否是最新的?

下表包含 WooCommerce 和 WooCommerce 块的修补版本的完整列表。 如果您正在运行不在此列表中的 WooCommerce 或 WooCommerce Blocks 版本,请立即更新到您发布分支中的最高版本。

已修补的 WooCommerce 版本已修补的 WooCommerce 块版本
3.3.6 2.5.16
3.4.8 2.6.2
3.5.9 2.7.2
3.6.6 2.8.1
3.7.2 2.9.1
3.8.2 3.0.1
3.9.4 3.1.1
4.0.2 3.2.1
4.1.2 3.3.1
4.2.3 3.4.1
4.3.4 3.5.1
4.4.2 3.6.1
4.5.3 3.7.2
4.6.3 3.8.1
4.7.2 3.9.1
4.8.1 4.0.1
4.9.3 4.1.1
5.0.1 4.2.1
5.1.1 4.3.1
5.2.3 4.4.3
5.3.1 4.5.3
5.4.2 4.6.1
5.5.1 4.7.1
5.5.2 4.8.1
4.9.2
5.0.1
5.1.1
5.2.1
5.3.2
5.4.1
5.5.1

为什么我的网站没有自动更新?

您的网站可能由于多种原因没有自动更新,其中一些最有可能是:您正在运行受影响的版本之前的版本(WooCommerce 3.3 以下),您的网站已明确禁用自动更新,您的文件系统是只读,或者存在阻止更新的潜在冲突扩展。

在所有情况下(除了第一个示例,您不受影响),您应该尝试手动更新到发布分支上的最新修补版本(例如 5.5.2、5.4.2、5.3.1 等),如上表。

是否有任何数据被泄露?

根据当前可用的证据,我们认为任何利用都是有限的。

如果商店受到影响,则暴露的信息将特定于该站点存储的内容,但可能包括订单、客户和管理信息。

如何检查我的商店是否被利用?

由于此漏洞的性质,以及 WordPress(以及 WooCommerce)允许处理 Web 请求的极其灵活的方式,没有确定的方法来确认漏洞利用。 您可以通过查看您的网络服务器的访问日志(或从您的网络主机获得帮助)来检测一些利用尝试。 从 2019 年 12 月到现在,出现以下格式的请求可能表明存在攻击企图:

  • REQUEST_URI 匹配正则表达式/\/wp-json\/wc\/store\/products\/collection-data.*%25252.*/
  • REQUEST_URI 匹配正则表达式/.*\/wc\/store\/products\/collection-data.*%25252.*/ (请注意,此表达式效率不高/在大多数日志记录环境中运行缓慢)
  • /wp-json/wc/store/products/collection-data/?rest_route=/wc/store/products/collection-data的任何非 GET(POST 或 PUT)请求

我们看到利用此漏洞的请求来自以下 IP 地址,超过 98% 来自列表中的第一个。 如果您在访问日志中看到这些 IP 地址中的任何一个,则应假定该漏洞已被利用:

  • 137.116.119.175
  • 162.158.78.41
  • 103.233.135.21

我需要更改哪些密码?

您的密码不太可能被泄露,因为它是经过哈希处理的。

WordPress 用户密码使用盐进行哈希处理,这意味着生成的哈希值很难破解。 这种加盐哈希方法可以保护您作为管理员用户的密码,以及您网站上任何其他用户(包括客户)的密码。 虽然存储在数据库中的密码的哈希版本可能已通过此漏洞被访问,但哈希值应该是难以辨认的,并且仍然可以保护您的密码免遭未经授权的使用。

这假设您的网站正在为用户使用标准的 WordPress 密码管理。 根据您在站点上安装的插件,您的密码或其他敏感信息可能以不太安全的方式存储。

如果您网站上的任何管理员用户可能在多个网站上重复使用了相同的密码,我们建议您更新这些密码,以防他们的凭据在其他地方被泄露。

我们还建议更改存储在 WordPress/WooCommerce 数据库中的任何私人或秘密数据。 这可能包括 API 密钥、支付网关的公钥/私钥等,具体取决于您的特定商店配置。

作为扩展开发者或服务提供商,我们应该提醒我们的 WooCommerce 商家吗?

如果您与任何实时 WooCommerce 商店或商家合作,我们鼓励您与他们合作,以确保他们了解此问题,和/或将他们的商店更新为安全版本。

如果您构建了依赖于 WooCommerce API 的扩展程序或提供 SaaS 服务,我们鼓励您帮助商家重置密钥以连接到您的服务。

作为店主,我应该提醒我的顾客吗?

是否提醒客户最终取决于您。 您通知客户或重置密码等内容的义务将根据您的站点基础设施、您和您的客户所在的地理位置、您的站点正在收集的数据以及您的站点是否已被入侵等详细信息而有所不同。

您可以采取的保护客户的最重要措施是将您的 WooCommerce 版本更新为已修复此漏洞的版本。

更新后,我们建议:

  • 更新站点上任何管理员用户的密码,尤其是当您在多个网站上重复使用相同的密码时
  • 轮换您网站上使用的任何支付网关和 WooCommerce API 密钥。

作为店主,您最终决定是否要采取额外的预防措施,例如重置客户密码。 WordPress(以及 WooCommerce)用户密码使用盐进行哈希处理,这意味着生成的哈希值很难破解。 这种加盐哈希方法适用于您网站上的所有用户密码,包括您客户的密码。

WooCommerce 仍然可以安全使用吗?

是的。

像这样的事件并不常见,但不幸的是有时会发生。 我们的意图始终是立即响应并以完全透明的方式运作。

自从得知该漏洞以来,该团队一直在夜以继日地工作,以确保修复已经到位,并且我们的用户已被告知。

我们对平台安全性的持续投资使我们能够防止绝大多数问题 - 但在可能影响商店的极少数情况下,我们努力快速修复,主动沟通,并与 WooCommerce 社区合作。

如果我还有问题怎么办?

如果您对此问题有任何进一步的疑虑或疑问,我们的幸福工程师团队随时为您提供帮助 - 打开支持票。