如果您收到我发来的邮件,指引您访问本页面,那是因为您的网站似乎正在运行存在漏洞版本的 Wallet System for WooCommerce(WordPress 插件 wallet-system-for-woocommerce, 由 WP Swings 开发)。本页面将说明这为何重要以及如何修复。

本通知涉及 CVE-2026-42654,这是该插件账户与密码找回流程中的一个高危缺陷(CVSS 7.1), 它可能让未经授权的请求 获得对某个顾客账户的访问权限。它影响 2.7.6 之前的所有版本, 并已在 2.7.6 中修复。如果您正在运行受影响的版本,请 将 Wallet System for WooCommerce 更新到 2.7.6 或更高版本(推荐使用最新的 2.7.8 发行版)。

关于紧迫程度,需要说明一点,因为它与我发出的其他通知不同:这是一个 账户访问层面的缺陷, 而不是服务器或管理员权限的完全接管,并且 没有迹象表明它正被利用。本页面是一份预防性的 提醒,而不是事件报告。更新即可堵上这个问题,本通知也不意味着需要任何紧急响应。

这是一个 插件 缺陷,而不是 WordPress 或 WooCommerce 核心的缺陷。如果 Wallet System for WooCommerce 插件本身处于受影响的版本,那么即便是完全最新的 WordPress 和 WooCommerce 也 无法 保护您。

这条消息是否可信?

是的。这是一份来自独立安全研究人员的善意、负责任披露通知。我 不会 向您索要金钱、 密码或对您站点的访问权限,也 没有 试图入侵它、上传任何东西或利用任何漏洞。

我所做的一切,只是查看您的网站向每一位访问者提供的公开可见文件(就像您的主页是公开的一样), 并记录 Wallet System for WooCommerce 插件在其公开的 README.txt 文件中公布的版本号。 我特意 没有 触碰那个存在漏洞的接口,而且这项检查完全不涉及您的数据、您的后台管理区域, 或您站点的任何私密部分(更多细节见下方我做了什么、没做什么)。

如果您想核实我的身份,请查看本页底部的联系方式以及关于页面。

为什么这很重要

Wallet System for WooCommerce 是一款 WooCommerce 附加插件(约有 2,000 个活跃安装), 它让商店能够为顾客提供数字钱包:顾客持有余额、进行充值,并在结账时用它付款。 在受影响的版本中,该插件账户与密码找回流程中的特权钱包操作,是由一个 插件发放给每一位访问者的共享安全令牌 来保护的,而不是由一项与请求发起者身份绑定的 真正权限检查来保护。这类错误被称为 通过替代路径或通道绕过身份验证(CWE-288): 正常的登录路径会正确核验身份,但存在一条旁路,它把这个共享令牌当作授权证明来接受。

实际的后果是,经由这条旁路到达的请求(任何 已注册顾客 都能触达这条路径, 而运营顾客钱包的商店几乎总是开放注册的)可以以已授权用户的身份行事, 并 获得对某个顾客账户的访问权限

该缺陷被评为 满分 10 中的 7.1(高危)。为了客观看待这个分数:这是一个账户访问层面的问题, 它本身并不会把您的服务器或管理员账户交给攻击者,而且 没有迹象表明存在活跃的利用行为 (它不在 CISA 的已知被利用漏洞目录中,我也没有听说任何利用报告)。如果我的邮件引用了 这个问题,那意味着您站点报告的版本落在受影响的范围之内。我并没有测试您的具体站点 是否可被利用,只是确认它报告了一个受影响的版本。

好消息:更新到已修复的版本可以堵上这个问题,而且更新过程很简单。

如何检查您的版本

您不必仅凭我的说法来判断自己运行的是哪个版本。

从公开清单查看(无需登录): 在浏览器中打开 yourdomain.com/wp-content/plugins/wallet-system-for-woocommerce/README.txt。 请注意,这款插件的自述文件是 README.txt(大写),不同于许多使用小写 readme.txt 的插件。顶部附近的 Stable tag: 这一行是您的安装所报告的版本, 而这正是我读取的那个公开文件。

从 WordPress 后台管理区域查看(如果您有访问权限):

  1. 登录您的 WordPress 仪表盘(通常位于 yourdomain.com/wp-admin)。
  2. 前往 Plugins 然后 Installed Plugins
  3. 找到 Wallet System for WooCommerce 并记下其名称下方显示的版本。

然后按照以下规则判断,并注意版本号是 按数值比较,而不是按字母顺序比较

  • 低于 2.7.6 的任何版本: 受影响,请立即更新。此前的每一个发行版都带有这个缺陷; 不存在安全的旧版本。
  • 2.7.6 或更高版本,包括 2.7.7 和 2.7.8:已经修复。
  • 不要被文本排序误导:2.5.11 是比 2.5.9 更晚 的发行版,因为 11 大于 9。 请逐个数字比较,而不要把版本号当作文本来读(上面这两个例子都低于 2.7.6, 因此都受影响;这里的重点是如何正确阅读版本号)。

如何升级

最安全的做法是通过 WordPress 自身进行更新,并事先做好备份:

  1. 在做出更改之前 备份您的站点(文件和数据库)。大多数主机服务商都提供一键备份, 或者使用 WordPress 备份插件。
  2. 在 WordPress 后台,前往 Dashboard 然后 Updates,或 Plugins 然后 Installed Plugins。如果列出了 Wallet System for WooCommerce 更新,就从这里安装它。
  3. 如果您更喜欢命令行,WP-CLI 可以完成同样的事情: wp plugin update wallet-system-for-woocommerce
  4. 如果没有出现更新,您可以直接从该插件在 WordPress.org 目录上的页面获取最新版本, Wallet System for WooCommerce, 并通过 Plugins 然后 Add New Plugin 然后 Upload Plugin 进行更新。
  5. 更新后,按照上述步骤确认新的版本号(2.7.6 或更高;推荐使用最新的 2.7.8), 并检查您的商店及其钱包功能是否正常工作。

既然您已经在处理这些,不妨顺便确认 WordPress 核心WooCommerce 以及您的其他插件 是否都是最新的,因为同样的原则适用于所有这些组件。

更新之后

更新到 2.7.6 或更高版本即可堵上这个问题,对大多数商店来说,这就是全部要做的事。 没有迹象表明这个缺陷已被利用,因此 本通知不意味着需要任何紧急响应: 您不需要把站点视为已被入侵、将其下线,或强制重置密码。

由于这个缺陷可能让未经授权的请求对顾客账户进行操作,有一项例行的后续检查是合理的: 查看一下近期的 账户与钱包活动,留意任何陌生的内容,例如您并未进行过的钱包余额调整、 您不认识的提现或资金请求,或者顾客并未提出过的顾客账户变更。请把这当作商店定期进行的 普通日常维护,而不是事件响应。如果确实发现了异常,按常规步骤处理即可 (重置该顾客的密码,并与其一起核查相关活动),也欢迎您随时联系我咨询。

我做了什么、没做什么

为了对我邮件背后的检查做到完全透明:我只读取了您的站点本来就向每一位访问者提供的公开文件, 具体来说是该插件的公开 README.txt 文件和您的主页。我 没有 访问您的 WordPress 后台管理区域、您的数据库,或站点的任何私密部分。特别是,我 没有 触碰那个存在漏洞的接口, 也没有测试或利用任何东西。

这是一项 基于版本号的观察:您的站点报告的版本落在受影响的范围之内。处于该范围内的站点 也可能已经通过其他方式得到缓解(例如 Web 应用程序防火墙,或补丁回移植), 因此本通知并不是断言在我检查时您的站点确实可被利用。

我没有网站管理员 / 我遇到了困难

如果您不是维护站点的人,请将本页面转发给负责维护的人(您的网页开发者、代理机构或主机服务商)。 他们会很快认出上述步骤。

如果您自己维护站点却遇到了困难,我很乐意免费帮您指明正确的方向。请使用下方的联系方式与我联系。

联系方式

Evan Harris,安全研究员

我就此类问题主动联系,纯粹是为了帮助运营者保护他们的站点。如果您希望不再被联系, 只需告诉我,我会予以尊重。

参考资料

官方通告与追踪

厂商 / 插件