如果您收到我发来的邮件,指引您访问本页面,那是因为您的网站似乎正在运行存在漏洞版本的 Premium Packages(WordPress 插件 wpdm-premium-packages,一款由 Shahjada / wpdownloadmanager.com 开发的 WordPress Download Manager 附加插件)。本页面将说明这为何 重要以及如何修复。

本通知涉及 CVE-2026-15348,这是该插件下载处理程序中的一个 未经身份验证的身份验证绕过 漏洞,它可能让未经授权的访问者在您的商店上 以顾客或其他非管理员账户的身份登录。它影响 4.7.0 到 7.0.4 之间的版本,并已在 7.0.5 中修复。如果您正在运行受影响的版本,请 将 Premium Packages 更新到 7.0.5 或更高版本

关于紧迫程度,需要说明一点,因为它介于我发出的其他通知之间:这个问题 完全不需要登录 (它是完全未经身份验证的),所以及时更新是值得的。与此同时,它是一个 影响非管理员订单 拥有者的账户访问缺陷,而不是服务器或完整管理员权限的接管,并且 没有迹象表明它正被利用 (它不在 CISA 的已知被利用漏洞目录中,我也没有听说任何利用报告)。本页面是一份预防性的提醒, 而不是事件报告。更新即可堵上这个问题,本通知也不意味着需要任何紧急响应。

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

这条消息是否可信?

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

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

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

为什么这很重要

Premium Packages 是一款 WordPress Download Manager 附加插件(约有 2,000 个活跃安装), 它让站点能够销售数字产品和下载内容。在受影响的版本中,该插件的 download() 处理程序 在一个 未经身份验证的 请求上运行。它会解码一个由攻击者控制的 URL 参数(wpdmppdl), 而该参数只是经过 base64 编码,没有签名也没有 nonce 来证明请求是真实的,然后在一项 两端都由攻击者提供(因此该检查可以被轻易满足)的“域名”检查之后签发 WordPress 登录 cookie。这类错误属于 身份验证绕过:一条旁路在从不核验请求者身份的情况下就发放了一个 已登录的会话。

实际的后果是,一个未经身份验证的访问者可以 以商店上任何拥有订单的非管理员用户的身份登录: 顾客、订阅者、作者、编辑或店铺经理账户。为了明确其上限:它 不会 授予管理员访问权限, 也不会凭自身把您的服务器交给攻击者。它是对非管理员订单拥有者的账户接管。

指派机构并未为该问题分配 CVSS 分数,所以我不会给它附上一个数字;从性质上看,它之所以严重, 是因为它不需要登录,但也有边界,因为它所带来的访问权限是非管理员的。如果我的邮件引用了 这个问题,那意味着您站点报告的版本落在受影响的范围之内。我并没有测试您的具体站点是否可被利用, 只是确认它报告了一个受影响的版本。

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

我是否受影响?如何检查您的版本

这是本通知中与我发出的其他通知不同的一部分,因为这款插件的 公开版本字段并不可靠, 所以值得仔细阅读。

权威的检查方式是 WordPress 后台管理区域。 它会显示真实安装的版本:

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

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

  • 低于 7.0.5 的任何版本: 受影响,请立即更新。
  • 7.0.5 或更高版本: 已经修复。

为什么不能直接读取公开文件? 因为对于这款插件,它们可能会误导您:

  • 该插件的公开 readme.txt 文件中的 “Stable tag:”这一行落后于它自己的代码。 例如, 运行最后一个存在漏洞的发行版(7.0.4)的站点会公布 Stable tag: 7.0.3。因此,公开的 readme 只有在读数为 7.0.5 或更高时 才是“已修复”的可靠信号。较低的数字 无法 可靠地 告诉您您的确切发行版;请把任何低于 7.0.5 的情况都当作“检查 wp-admin 并更新”。
  • 不要 根据插件脚本或样式 URL 上的 ?ver= 数字来判断您的版本。该插件在 7.0.5 安全 发行版中把其内部版本常量冻结在了 7.0.4,因此一个已打补丁的 7.0.5 站点仍会提供标记为 ?ver=7.0.4 的资源;而且 CSS 文件的 ?ver= 实际上是 WordPress 核心 的版本,而不是 插件的版本。两者都不反映插件的真实版本。请使用 wp-admin。

如何升级

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

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

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

更新之后

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

由于这个缺陷可能让未经授权的访问者在顾客或其他非管理员账户上进行操作,有一项例行的后续检查 是合理的:查看一下近期的 顾客账户与订单活动,留意任何陌生的内容,例如顾客并未进行过的 订单或账户变更,或者与正常活动不符的登录。请把这当作商店定期进行的普通日常维护,而不是 事件响应。如果确实发现了异常,按常规步骤处理即可(重置该账户的密码,并与顾客一起核查相关 活动),也欢迎您随时联系我咨询。

我做了什么、没做什么

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

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

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

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

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

联系方式

Evan Harris,安全研究员

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

参考资料

官方通告与追踪

厂商 / 插件