CVE-2025-10132CVE-2025-10132是WordPress Dhivehi Text插件中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞由WordFence安全团队的安全研究员发现,并于2025年10月15日公开披露。Dhivehi Text是一款用于WordPress的迪维希语(Dhivehi,马尔代夫官方语言)文本处理插件,主要用于在WordPress站点中渲染和展示迪维希语内容。该插件通过注册一个名为'dhivehi'的短代码(shortcode)来实现其功能,允许用户在文章或页面中嵌入迪维希语文本。然而,该插件在处理短代码属性时存在严重的安全缺陷,未能对用户输入的属性值进行充分的输入过滤和输出转义(insufficient input sanitization and output escaping),导致攻击者可以在短代码属性中注入恶意的JavaScript脚本代码。这些恶意代码将被持久化存储在WordPress数据库中,每当有用户访问包含该短代码的页面时,嵌入的恶意脚本将在受害者的浏览器中自动执行。由于该漏洞影响范围为该插件的所有版本(包括0.1及以下),且利用条件相对简单(仅需贡献者级别及以上的认证权限),因此对使用该插件的WordPress站点构成了显著的安全威胁。CVSS评分为6.4分,属于中等严重级别,攻击复杂度低,可通过网络远程利用,机密性和完整性影响均为低,但可用性不受影响。
该漏洞的核心技术原理在于WordPress短代码(Shortcode)处理机制中的输入验证缺陷。在WordPress中,短代码是一种允许用户通过简洁的标签语法在文章内容中嵌入动态功能的机制,例如 [dhivehi attribute="value"]content[/dhivehi]。Dhivehi Text插件注册了名为'dhivehi'的短代码,用于处理迪维希语文本的渲染。漏洞产生的原因主要有以下几点:
1. **输入过滤不足(Insufficient Input Sanitization)**:插件在处理短代码属性时,未对用户通过短代码属性传入的数据进行严格的过滤和验证,未能有效阻止HTML标签和JavaScript代码的注入。攻击者可以构造包含恶意脚本的短代码属性值,例如 [dhivehi text=""><script>alert(document.cookie)</script]"。
2. **输出转义缺失(Missing Output Escaping)**:即使输入阶段未能完全过滤恶意内容,安全的编程实践还要求在输出阶段对数据进行HTML实体编码(HTML entity encoding),将特殊字符如<、>、"、'等转换为对应的HTML实体。然而该插件在将短代码属性渲染到页面时,未执行任何输出转义操作,导致恶意脚本以原始形式输出到浏览器并被执行。
3. **存储型XSS特性**:与反射型XSS不同,存储型XSS的恶意载荷会被持久化保存在服务器端数据库中。在WordPress环境中,当贡献者(Contributor)或更高权限的用户创建或编辑包含恶意短代码的文章并发布后,该恶意内容将存储在wp_posts数据库表中。所有后续访问该文章页面的用户(包括管理员)都会在浏览器中执行注入的恶意脚本。
4. **利用条件**:利用此漏洞需要攻击者拥有WordPress站点的贡献者级别(Contributor)或更高的认证权限。贡献者级别是WordPress中较低的内置用户角色,虽然无法直接发布文章,但可以编写内容并提交审核。一旦内容通过审核或被更高权限的用户发布,恶意脚本就会生效。