CVE-2025-11160CVE-2025-11160是WPBakery Page Builder插件中存在的一个存储型跨站脚本(Stored XSS)漏洞,该插件是WordPress中广泛使用的可视化页面构建工具,拥有超过百万级别的活跃安装量。该漏洞存在于插件的Custom JS(自定义JavaScript)模块中,影响所有8.6.1及以下版本。
该漏洞的根本原因在于插件对用户输入的JavaScript代码缺乏充分的输入净化(input sanitization)和输出转义(output escaping)处理。攻击者可以通过Custom JS模块注入恶意的JavaScript代码,这些代码会被持久化存储在服务器端,当其他用户访问包含恶意代码的页面时,恶意脚本将在受害者浏览器中自动执行。
由于该漏洞的利用需要至少贡献者(contributor)级别的WordPress账户权限,因此攻击门槛相对较低。在多作者博客、开放投稿平台或社区驱动型网站中,恶意贡献者可以利用此漏洞获取管理员权限、窃取用户会话、植入后门或进行钓鱼攻击。CVSS评分为6.4,属于中等严重级别,但考虑到WPBakery的广泛使用范围和WordPress生态系统的特点,该漏洞的实际影响不容忽视。该漏洞由Wordfence安全团队的安全研究员发现,并于2025年10月15日公开披露。
WPBakery Page Builder的Custom JS模块允许页面编辑者在页面或文章中嵌入自定义JavaScript代码,以实现动态交互效果。然而,该模块在处理用户输入时存在以下安全问题:
1. **输入净化不足**:插件未对用户提交的JavaScript代码进行充分的过滤和验证,允许包含恶意payload的脚本代码被保存到数据库中。
2. **输出转义缺失**:当页面被渲染时,Custom JS模块中存储的代码未经适当的HTML实体编码或上下文感知转义即被输出到前端页面,导致浏览器将其解析为可执行脚本而非纯文本。
3. **权限控制缺陷**:虽然该功能需要至少贡献者级别的访问权限,但插件未对Custom JS模块的访问进行更细粒度的权限控制,未限制可注入的代码类型。
**利用方式**:
- 攻击者首先获取一个WordPress贡献者级别或以上的账户(可通过注册开放网站或社工获取)。
- 登录WordPress后台,创建一个新页面或编辑现有页面。
- 在WPBakery编辑器中打开Custom JS模块,输入恶意JavaScript payload。
- 发布或保存页面,恶意代码被持久化存储。
- 当任何用户(包括管理员)访问该页面时,恶意脚本自动执行,可窃取cookie、会话令牌,或执行管理员级别的操作。
该漏洞的CVSS向量为CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N,表明通过网络即可利用,攻击复杂度低,需要低权限认证,无需用户交互,作用域发生变化,对机密性和完整性有低影响。