CVE-2025-11818CVE-2025-11818是WordPress WP Responsive Meet The Team插件中存在的一个存储型跨站脚本(Stored XSS)漏洞。该插件是一款用于在WordPress网站上展示团队成员信息的响应式插件,支持通过短代码(shortcode)在页面中嵌入团队成员展示模块。该漏洞由Wordfence安全团队的研究员发现并报告,CVSS评分为6.4分,属于中危级别漏洞。
该漏洞影响该插件的所有版本,包括1.0.1及之前的全部版本。漏洞的根本原因在于插件对用户通过'wprm_team'短代码提供的属性参数缺乏充分的输入清理(input sanitization)和输出转义(output escaping)处理。这意味着具有贡献者(contributor)级别或更高权限的认证攻击者可以通过在短代码属性中注入恶意JavaScript代码,将任意Web脚本持久化存储到WordPress数据库中。当其他用户(包括管理员)访问包含恶意短代码的页面时,注入的脚本将在受害者浏览器中自动执行,从而实现会话劫持、权限提升、钓鱼攻击或恶意重定向等攻击行为。
由于WordPress生态系统中插件的广泛使用,此漏洞可能影响大量依赖该插件展示团队信息的网站。虽然利用该漏洞需要至少贡献者级别的认证权限,但许多WordPress网站允许用户注册并自动获得贡献者角色(如多作者博客、会员社区等),这大大降低了实际利用的难度。此外,存储型XSS的危害性远高于反射型XSS,因为恶意载荷会持续存储在服务器端,每次受害者访问相关页面都会触发攻击。
该漏洞位于WP Responsive Meet The Team插件的短代码处理逻辑中,具体涉及'wprm_team'短代码的属性解析过程。
**漏洞原理:**
在WordPress中,短代码(shortcode)是一种允许开发者通过方括号语法在文章或页面中嵌入动态内容的机制,例如[wprm_team member="John" role="CEO"]。WordPress核心通过add_shortcode()函数注册短代码处理函数,当页面渲染时,短代码处理器会解析方括号内的属性并将其传递给回调函数。
WP Responsive Meet The Team插件在处理'wprm_team'短代码时,未对用户输入的属性值进行充分的清理和转义处理。具体而言,插件可能直接使用如'member'、'role'、'description'等短代码属性的原始值来构建HTML输出,而没有调用WordPress提供的安全函数如esc_attr()、esc_html()或wp_kses_post()等进行转义。
**利用方式:**
1. 攻击者首先需要拥有一个贡献者(contributor)或更高权限的WordPress账户。
2. 攻击者创建一篇新文章或页面,在内容中插入包含恶意JavaScript代码的'wprm_team'短代码,例如通过在属性值中注入"onerror"、"onload"等事件处理器或<script>标签。
3. 由于是贡献者级别,文章提交后处于待审核状态,但某些配置下可能自动发布,或攻击者通过社会工程学手段诱使管理员审核通过。
4. 一旦文章发布,恶意脚本被持久化存储到WordPress数据库中。
5. 当任何用户(特别是具有管理员权限的用户)访问该页面时,浏览器解析HTML并执行注入的恶意脚本。
6. 恶意脚本可以在受害者上下文中执行任意操作,如窃取cookie、会话令牌,进行权限提升,或将权限提升到管理员级别。
**漏洞位置:**
根据参考链接,漏洞位于插件1.0.1版本的admin/layouts.php文件的第64行附近,该文件负责处理短代码的布局渲染逻辑。