CVE-2025-10135CVE-2025-10135是WordPress WP ViewSTL插件中存在的一个存储型跨站脚本(Stored XSS)漏洞。该插件用于在WordPress网站中嵌入和展示STL(3D模型)文件。漏洞存在于插件的`viewstl`短代码(shortcode)处理逻辑中,影响该插件所有1.0及以下版本。
由于插件在处理用户通过短代码属性传入的内容时,缺乏充分的输入净化(input sanitization)和输出转义(output escaping)机制,攻击者可以在短代码属性中注入恶意的JavaScript代码。这些恶意代码会被持久化存储到WordPress数据库中,当其他用户访问包含该短代码的页面时,恶意脚本将在受害者浏览器中自动执行。
该漏洞由WordPress安全团队Wordfence发现并报告,CVSS 3.1评分为6.4分,属于中危级别。攻击者需要拥有Contributor(投稿者)及以上权限才能利用此漏洞,但由于存储型XSS的危害特性,一旦恶意脚本被注入,所有访问受影响页面的用户(包括管理员)都可能受到攻击,可能导致会话劫持、权限提升、恶意重定向、数据窃取等严重后果。
WP ViewSTL插件通过注册一个名为`viewstl`的WordPress短代码来实现在文章和页面中嵌入3D模型查看器的功能。短代码允许用户通过属性参数来自定义查看器的行为和外观。
漏洞的根本原因在于:
1. **输入净化不足**:插件在处理短代码属性时,未对用户输入进行严格的过滤和验证。WordPress虽然提供了一些内置的转义函数(如`esc_attr()`、`esc_html()`等),但插件开发者未正确使用这些函数来处理所有用户可控的输入。
2. **输出转义缺失**:当短代码的输出被渲染到页面时,插件未对属性值进行适当的HTML实体编码,导致恶意JavaScript代码可以直接注入到页面HTML中。
利用方式:
1. 攻击者以Contributor(投稿者)身份登录WordPress后台
2. 创建新文章或页面,在内容中插入`[viewstl]`短代码
3. 在短代码的属性参数中注入恶意JavaScript代码,例如使用`onerror`、`onload`等事件处理器或`<script>`标签
4. 提交文章等待审核或直接发布(取决于站点配置)
5. 当其他用户(尤其是管理员)访问该页面时,恶意脚本在其浏览器中执行
6. 攻击者可窃取用户会话cookie、进行权限提升或执行其他恶意操作