Page Builder CK SQL 注入安全通知
如果您收到我的邮件并被引导到此页面,是因为您的网站看起来正在运行受漏洞影响的
Page Builder CK 版本(Joomlack 的 com_pagebuilderck),这是一款用于 Joomla 内容管理系统的
页面构建扩展。本页说明为什么这很重要以及应该怎么做。
本通知涉及 CVE-2026-77994,一处严重(CVSS 9.3)的 SQL 注入漏洞。在受影响的版本中, 存储在您页面内容中的某个值会被放入数据库查询,却缺少能阻止此类值改变查询含义的防护。这就使得 远程攻击者(无需登录、也无需在您网站上拥有账号)能够读取您网站数据库中的信息。
这与早前的 Page Builder CK 漏洞(CVE-2026-56290,一处文件上传缺陷)是两个不同的问题。两者 都影响同一个扩展;本次这个是数据库读取,而非网站被接管。
哪些版本已修复,哪些尚无修复
Page Builder CK 针对每个 Joomla 版本以各自独立的发布线提供。截至撰写本文时,本问题的修复仅在 Joomla 5/6 版本线上发布。
| 如果您的网站运行… | 修复状态 | 应该怎么做 |
|---|---|---|
| Joomla 5 或 6 | 已在 3.6.5 中修复 | 将 Page Builder CK 升级到 3.6.5 或更高版本 |
| Joomla 4 | 无已修复的构建(最新为 3.4.11,仍受影响) | 迁移到 Joomla 5/6 版本线(3.6.5),或移除该扩展 |
| Joomla 3 | 无已修复的构建(最新为 3.1.2,仍受影响) | 迁移到 Joomla 5/6 版本线(3.6.5),或移除该扩展 |
如果您运行的是 Joomla 5 或 6,这只是一次直接升级到 3.6.5 或更高版本的操作。
如果您运行的是 Joomla 3 或 4,目前针对您的 Joomla 版本线没有已打补丁的 Page Builder CK 构建,这些版本线上可获得的最新版本仍然包含该缺陷。在您所在的版本线上升级”到最新”并不会 修复它。您现实可行的选择是迁移到 Joomla 5/6 发布线(这意味着要升级 Joomla 本身),或者移除 Page Builder CK 扩展。如果两者都无法立即做到,请把将网站置于 Web 应用防火墙之后视为临时措施, 而非真正的修复。
这是扩展的缺陷,而非 Joomla 核心的缺陷。如果 Page Builder CK 扩展本身受影响,即使 Joomla 核心完全为最新版也无法保护您。
这封邮件是真实的吗?
是的。这是一位独立安全研究者出于善意、依照负责任披露原则发出的通知。我不会向您索取金钱、 密码或网站访问权限,我也没有尝试入侵您的网站、向它提交任何内容或利用任何漏洞。
我所做的只是查看您的网站向每位访问者公开提供的文件(就像您的首页是公开的一样),并记录 Page Builder CK 扩展在这些文件中公开的版本号。这项检查的任何环节都不会触及您的数据、后台管理 区域或网站的任何私有部分。
如果您想核实我的身份,请查看本页底部的联系方式以及关于页面。
为什么这很重要
Page Builder CK 是 Joomla 上一款被广泛使用的拖放式页面构建器。在受影响的版本中,Page Builder CK 为某个页面存储的内容,会在该页面显示时被用于构建数据库查询,却没有与查询本身安全地隔离开。 能够影响该存储内容的攻击者(在受影响的版本中,这无需账号)可以让查询返回本不应返回的数据, 从而读取您数据库中的信息。视您网站存储的内容而定,其中可能包括用户记录、密码哈希和密钥。
为把该问题的边界讲清楚:它是数据库读取。它本身并不是远程代码执行,也不会仅凭自身就把 管理员账号或您服务器的控制权交给攻击者。我把它是什么、不是什么都告诉您,是因为准确比制造恐慌 更重要。
如果我的邮件提到了这个问题,说明您网站报告的版本落在受影响范围内。我并未测试您的具体网站是否 可被利用,也未测试是否确有数据被读取,我确认的只是它报告了一个受影响的版本。
如何查看您的版本
您不必只听我一面之词来判断自己运行的是哪个版本。
从公开清单文件(无需登录): 在浏览器中打开
您的域名.com/administrator/components/com_pagebuilderck/pagebuilderck.xml。其中的 <version>
一行就是您的 Page Builder CK 安装所报告的版本,这也正是我读取的那个公开文件。
从后台管理区域(如果您有访问权限):
- 登录您的 Joomla 后台(通常是
您的域名.com/administrator)。 - 进入系统然后管理然后扩展(或扩展然后管理,具体取决于您的 Joomla 版本)。
- 搜索 Page Builder CK 并记下已安装的版本,同时记下您运行的 Joomla 版本(显示在后台 仪表盘上)。
将两者与上表对照。由于修复目前仅存在于 Joomla 5/6 版本线,仅凭版本号无法告诉您是否有可用的 修复,真正决定这一点的是您的 Joomla 版本线。
如何修复
如果您运行的是 Joomla 5 或 6:
- 先备份您的网站(文件与数据库)。
- 在 Joomla 后台,打开扩展然后管理然后更新,点击查找更新,如果列出了 Page Builder CK 更新就安装它(它会为 Joomla 5/6 版本线提供 3.6.5 或更高版本)。
- 如果那里没有出现更新,请从开发者 Joomlack 处下载最新发布版本,网址为 https://www.joomlack.fr/en/joomla-extensions/page-builder-ck, 然后通过扩展然后安装进行安装。
- 用上述步骤确认新的版本(3.6.5 或更高)。
如果您运行的是 Joomla 3 或 4(针对您的版本线不存在已打补丁的构建):
- 持久的修复是迁移到拥有已打补丁的 Page Builder CK 的 Joomla 版本,也就是升级到 Joomla 5/6 与 Page Builder CK 3.6.5,这是一项较大的工程,值得与您的网站开发人员一起规划。
- 如果您短期内无法做到,且并不实际需要该扩展,请移除 Page Builder CK。
- 仅作为临时措施,Web 应用防火墙或许能削弱机会性的攻击尝试,但它不能替代移除或修补受影响 的代码。
趁此机会,也值得确认 Joomla 本身和您其他的扩展是否为最新版本。
如果您曾使用受影响的版本
该缺陷是数据库读取,不会留下明显的痕迹供您查找,因此不像遭到入侵之后那样会有文件或账号需要 您去排查。值得了解的是,升级(或移除该扩展)能够从此之后堵住这个漏洞,但无法撤销读取在 运行受影响版本期间可能已经被读取的任何内容。
作为一项合理的预防措施(并不是因为我有任何证据表明您的网站曾被查询),如果您的网站存储了已发布 内容之外的任何敏感信息(用户账号、客户数据、集成密钥),在修复该问题之后值得轮换已存储的凭据 和密钥,如果您保留了访问日志,也值得检查其中是否有异常的查询活动。
我想说清楚:我没有就上述任何一点检查过您的网站,我也不知道是否有数据被读取。这里给出这些 指引,是为了让您自己作出判断。
我没有网站管理员 / 我卡住了
如果维护网站的不是您本人,请将本页转发给负责的人(您的网站开发人员、代理机构或主机商)。他们会 很快认出上述步骤。
如果您自己维护网站并遇到困难,我很乐意免费为您指明方向。请通过下方联系方式与我联系。
联系方式
Evan Harris,安全研究员
- 邮箱:security@mail.mcpsec.dev
- X:@Evan__Harris
- GitHub:eharris128
- LinkedIn:Evan Harris
我就此类问题主动联系,纯粹是为了帮助运营者保护自己的网站。如果您不希望再次收到联系,请告诉我, 我会遵从。
参考
官方公告与追踪
开发者(Joomlack)