CVE-2025-60451CVE-2025-60451是MetInfo CMS 8.0版本中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞于2025年10月3日公开披露,CVSS 3.1评分为6.1分,属于中危级别漏洞。
MetInfo是一款广泛使用的内容管理系统(CMS),主要用于企业建站,其8.0版本在全球范围内拥有大量用户。该漏洞的核心问题在于系统的文件上传组件对SVG格式文件的处理缺乏充分的安全验证和过滤机制。SVG(可缩放矢量图形)作为一种基于XML的图像格式,其本身支持嵌入JavaScript脚本代码,这一特性使其成为XSS攻击的潜在载体。
攻击者可以通过网站设置模块中的上传功能,将包含恶意JavaScript代码的SVG文件上传到服务器。由于系统未对SVG文件内容进行安全检查,恶意脚本会被持久化存储在服务器端。当其他用户或管理员访问包含该SVG文件的页面时,嵌入的恶意脚本将在受害者浏览器中自动执行,从而实现窃取用户会话cookie、劫持用户账户、篡改页面内容或执行其他恶意操作。
该漏洞的攻击向量为网络(AV:N),无需任何特权(PR:N),但需要用户交互(UI:R)来触发,即需要受害者点击或访问包含恶意SVG的页面。漏洞的影响范围已改变(S:C),表明被攻击的资源超出了漏洞组件本身的权限范围。
该漏洞存在于MetInfo CMS 8.0版本的文件上传组件中,具体路径为app\system\include\module\uploadify.class.php,位于网站设置(webset)模块中。
技术原理:
1. SVG格式特性利用:SVG是一种基于XML的矢量图形格式,与普通图片格式(如PNG、JPG)不同,SVG文件本质上是一个XML文档,可以在其中嵌入<script>标签、事件处理器(如onload、onclick等)以及外部资源引用。当浏览器渲染SVG文件时,会执行其中的JavaScript代码。
2. 上传验证缺陷:uploadify.class.php组件在处理文件上传时,未对上传文件的实际内容进行充分的安全检测。虽然系统可能对文件扩展名进行了基本检查,但未阻止SVG文件的上传,也未对SVG文件内部的XML内容进行恶意脚本过滤或沙箱化处理。
3. 存储型XSS机制:攻击者构造一个包含恶意JavaScript代码的SVG文件,例如在SVG文件中嵌入`<script>alert(document.cookie)</script>`或更复杂的载荷(如窃取cookie并发送到攻击者服务器)。该文件通过网站设置模块的上传接口上传后,被存储在服务器的文件系统中,并在网站页面中被引用展示。
4. 攻击触发:当受害者访问包含该恶意SVG的页面时,浏览器解析SVG文件并执行其中的JavaScript代码。由于脚本在受害者的会话上下文中执行,攻击者可以窃取会话令牌、执行未授权操作或进行钓鱼攻击。
利用方式:
- 攻击者首先注册一个普通账户或利用其他方式获得上传权限
- 构造包含恶意JavaScript的SVG文件
- 通过网站设置模块的上传功能上传该SVG文件
- 诱导管理员或其他用户访问包含恶意SVG的页面
- 恶意脚本在受害者浏览器中执行,实现cookie窃取或权限提升