Creative Mail 安全通知
如果您收到了我发来的指向此页面的电子邮件,是因为您的网站似乎正在运行 Creative Mail by
Constant Contact(用于 WooCommerce 的 WordPress 电子邮件营销插件,位于您的文件
/wp-content/plugins/creative-mail-by-constant-contact/ 中)的一个版本,该版本处于已知安全
问题的受影响范围内。本页面解释了该问题是什么、哪些版本受影响、为何没有可安装的更新,以及如何
安全地移除或替换该插件。
该问题是 CVE-2026-3985,一个可通过插件的 WooCommerce 废弃购物车处理功能触及的未经身份验证 的 SQL 注入漏洞。它影响 1.6.5 版本及其之后的每一个版本,直至并包括供应商发布的最后一个版本 1.6.9。
本页面上最重要的实际信息是:没有可更新到的已修复版本。 该插件已于 2026 年 5 月 14 日从 WordPress.org 目录中移除,且从未被修补过。最后一个发布版本 1.6.9 仍然带有此问题,并且不会有 更新的版本发布。因此,这不是通常那种”点击更新”式的通知。补救措施是停用并移除该插件,如果您 依赖它,则应将其替换为一个仍在维护的替代品。本页面接下来的部分将介绍如何确认您的版本,以及如何 安全地完成这一操作。
有一点可以让您安心,而且是真实的安心。与我描述的某些问题不同,这个漏洞有一个真正的下限:它是在 1.6.5 版本中引入的。1.6.4 及更早的版本不受此问题影响:存在漏洞的代码根本不存在于其中。 如果您的安装版本是 1.6.4 或更早,这一特定问题就不适用于您。(话虽如此,该插件已经没有任何人 维护,这本身就是您最终应该计划迁移出去的理由。)
这是一个 插件 漏洞,而不是 WordPress 核心漏洞。即使 WordPress 完全保持最新,只要 Creative Mail 插件本身处于受影响版本,也 不会 保护您。
这封邮件是真实的吗?
是的。这是独立安全研究人员发出的善意、负责任披露通知。我 不会 向您索要金钱、密码或网站访问 权限,我也 没有 尝试破解它、向它提交任何内容,或利用任何漏洞。
我所做的只是查看您的网站向每位访客公开可见的文件(与您的主页公开的方式相同),并记录插件发布的 版本号。我特意 没有 向插件的结账或同意处理功能发送任何内容,无论是在您的网站还是其他任何 网站上,此检查的任何部分都不会触及您的数据、您的后台或您网站的任何私有部分(更多详情见下方的 我做了什么、没做什么)。
如果您想验证我的身份,请参阅此页面底部的联系方式和 关于 页面。
为什么这很重要
Creative Mail 将 WooCommerce 店铺与 Constant Contact 连接起来用于电子邮件营销,它的部分功能是 记住已开始但未完成的购物车,以便店铺可以对其进行跟进。这个问题正存在于该废弃购物车处理功能中。
在受影响版本中,当插件记录一次结账时,它的某个数据库查找会把源自访客的一个值直接拼进查询里, 且该查询运行时没有使用预处理语句。这个值并没有为在 SQL 中使用而转义。其后果是:一个 未登录 的访客可以改变这条查询,并 从您网站的数据库中读取数据。
有必要准确说明这个问题是什么、不是什么。它能让攻击者 读取 数据库中的数据。这本身就很严重, 因为 WordPress 数据库中存有诸如用户电子邮件地址和密码哈希之类的信息,而在一个店铺网站上,其中 还可能存有客户记录。但它本身并不是远程代码执行,不是网站被接管,也不是攻击者借此为自己开出一个 管理员账号的手段。它比我在别处描述的那些完全沦陷型问题范围更窄,我宁愿如实说明其严重程度,也不 愿给您留下比事实更可怕的印象。
我以网站所有者需要采取行动的水平描述这一点,不再深入。我不会发布允许他人重现此问题的细节,我也 希望您不要尝试在自己的网站或他人的网站上进行尝试。按照下面的描述读取您的版本号,会告诉您决定 采取什么行动所需的一切信息。
如果我的电子邮件引用了此问题,这意味着您网站报告的版本是 1.6.5 或更新版本。我没有测试您的特定 网站是否可被利用;我所观察到的只是版本。
我受影响吗?
这归结为一个问题:您正在运行哪个版本的 Creative Mail?
从 WordPress 后台查看(权威来源):
- 登录您的 WordPress 仪表盘(通常位于
yourdomain.com/wp-admin)。 - 进入 插件,然后是 已安装的插件。
- 找到 Creative Mail by Constant Contact,其文件夹为
creative-mail-by-constant-contact的条目,并记下其名称下方显示的版本。
从公开清单文件查看(无需登录): 在浏览器中打开
yourdomain.com/wp-content/plugins/creative-mail-by-constant-contact/readme.txt。顶部附近的
Stable tag: 行就是您的安装所报告的版本,这也正是我读取的同一个公开文件。对于此插件,我
确认过它与实际发布的代码完全一致,因此这是一项可靠的检查。
有一种检查方法对此插件不适用,请不要依赖它。 如果您习惯于从页面源代码中脚本或样式表所附带
的 ?ver= 数字来读取插件版本,那在这里会误导您。对于此插件,这些数字是文件时间戳(类似
?ver=1723603844 这样的长数值),而不是插件版本,将其与 1.6.5 进行比较毫无意义。请使用后台
界面或 readme.txt。
然后应用此规则:
- 1.6.5 或更新(直至最后一个发布版本 1.6.9): 受影响。由于没有修复版本,应采取的步骤是 移除或替换该插件(见下文)。
- 1.6.4 或更早: 不受此问题影响。该漏洞是在 1.6.5 中引入的,因此更早的安装版本不包含它。 (不论如何,该插件已无人维护,因此仍然值得计划迁移出去。)
应该怎么做:移除或替换
由于该插件在没有修复的情况下被撤下,没有可安装的更新:您的 WordPress 仪表盘不会提供更新, 而您拥有的版本就是将来永远存在的最后一个版本。关闭这个问题的方法是停止运行该插件。请先备份, 然后移除它:
- 在做出更改之前备份您的网站(文件和数据库)。大多数主机提供商提供一键备份功能,或者您 可以使用 WordPress 备份插件。
- 在 WordPress 后台,进入 插件,然后是 已安装的插件,找到 Creative Mail by Constant Contact,然后点击 停用。停用会阻止有漏洞的代码继续运行。
- 停用后,点击 删除 以移除插件的文件。如果您更喜欢使用命令行,WP-CLI 也可以完成同样的
操作:
wp plugin deactivate creative-mail-by-constant-contact然后wp plugin delete creative-mail-by-constant-contact。 - 确认它已被移除:该条目应不再出现在插件页面上,并且
yourdomain.com/wp-content/plugins/creative-mail-by-constant-contact/readme.txt应不再能够 加载。
如果您一直在使用 Creative Mail 进行店铺的电子邮件营销,您会需要一个替代品,以免失去这项 功能。官方目录中存在多个仍在维护的 WooCommerce 电子邮件和通讯插件;请选择一个当前受支持且仍在 获得更新的插件。Constant Contact 的服务本身不受此问题影响:问题出在被撤下的这款 WordPress 插件 中,而不在电子邮件服务本身,因此如果您直接使用 Constant Contact,目标是采用一个当前受支持的 集成方案。
趁着在后台,也值得确认 WordPress 核心 和您的其他插件是否都已是最新版本,并移除任何您不再 使用的其他插件。
移除之后
移除该插件可以阻止此问题今后再从您的数据库中读取任何内容。但它 无法撤销 在插件处于受影响 版本、处于激活状态期间可能已经被读取的任何内容。我无法得知您的网站上是否发生过这种情况,我也 没有去查看;处于受影响范围内的大多数网站可能从未被碰过。但因为我无法向您确切保证这一点,采取 一些与您数据库中所存内容相称的小心措施是合理的:
- 在一个店铺网站上,明智的做法是让您的 管理员更改密码,并意识到数据库中的客户联系方式可能 已被暴露。WordPress 和 WooCommerce 以哈希形式而非明文存储密码,但弱密码的哈希可以被离线 破解,因此使用新密码可以消除这种担忧。
- 如果您网站上的任何插件自行存储了凭据或 API 密钥,也应将其视为值得轮换的对象。
- 在
wp-config.php中重新生成 WordPress 的密钥和盐值(新值在官方 密钥生成器 中只需一键即可 获取)会让所有用户退出登录一次,并使任何被盗的会话令牌失效。
明确一下这里的定位:这是一项预防措施,而不是声明您的数据已被窃取。此通知基于一个版本号,而非 任何攻击证据。
我做了什么、没做什么
为了完全透明地说明我邮件背后的检查过程:我只读取了您的网站已经向每位访问者提供的公开文件,具体
来说是插件的公共 readme.txt 文件和您的主页。我 没有 访问您的 WordPress 后台、数据库或
网站的任何私有部分。
特别是,我 从未向插件的结账或同意处理功能发送过任何内容,无论是在您的网站还是其他任何地方。 没有任何内容被提交、存储、测试或利用。这一点在这里比在大多数此类页面中更为重要,因为该处理功能 正是此问题涉及的确切对象,所以”我没有碰过它”是披露与入侵之间的全部区别。
我还故意不发布那些会帮助他人利用此问题的细节。上面的描述仅停留在网站所有者需要的级别,并且我 没有链接任何概念验证代码。
这是一项 基于版本的观察:您的网站报告的版本是 1.6.5 或更新版本。处于该范围内的网站可能已经 通过其他方式(例如 Web 应用防火墙)受到保护。此通知并非声明您的网站在我检查时是可被利用的。
我没有网站管理员 / 我卡住了
如果您不是负责维护网站的人,请将此页面转发给负责的人(您的网站开发人员、机构或主机提供商)。 他们会很快识别出上述步骤。
如果您自己维护网站并遇到困难,我很乐意免费帮助您指明正确的方向。请使用下面的联系方式联系我。
联系方式
Evan Harris,安全研究员
- 邮箱:security@mail.mcpsec.dev
- X:@Evan__Harris
- GitHub:eharris128
- LinkedIn:Evan Harris
我就此类问题主动联系,纯粹是为了帮助运营者保护自己的网站。如果您不希望再次收到联系,请告诉我, 我会遵从。
参考
官方公告与追踪
开发者 / 插件