CVE-2025-62418CVE-2025-62418是Bagisto电商平台v2.3.7版本中存在的一个存储型跨站脚本(Stored XSS)安全漏洞。该漏洞位于平台的TinyMCE富文本编辑器图片上传功能中,允许具有足够权限的攻击者(例如管理员)上传包含恶意JavaScript代码的特制SVG文件。当其他管理员或用户查看该恶意文件时,嵌入的脚本代码将在受害者浏览器的上下文中执行,从而窃取会话凭证、进行权限提升或执行其他恶意操作。
该漏洞的CVSS 3.1评分为6.9分,属于中危级别。其攻击向量为网络(AV:N),攻击复杂度低(AC:L),但需要高权限(PR:H)才能触发上传操作,同时需要用户交互(UI:R)来查看恶意内容。由于影响范围发生变化(S:C),机密性影响为高(C:H),完整性影响为低(I:L),可用性影响为无(A:N)。
该漏洞由GitHub安全顾问团队([email protected])发现并报告,并于2025年10月16日正式披露。Bagisto官方已在v2.3.8版本中修复了该安全问题,建议所有使用受影响版本的用户尽快升级到最新版本以消除风险。
该漏洞的根本原因在于Bagisto v2.3.7的TinyMCE富文本编辑器在处理图片上传功能时,未对上传的文件类型进行严格的MIME类型验证和内容过滤,特别是允许上传SVG(可缩放矢量图形)格式的文件。
SVG文件本质上是一种基于XML的图像格式,支持嵌入JavaScript脚本和事件处理器(如onload、onclick等)。当攻击者上传一个包含恶意JavaScript代码的SVG文件时,该文件会被存储在服务器上。由于浏览器在渲染SVG文件时会执行其中嵌入的脚本,因此当其他用户(尤其是管理员)通过浏览器查看该SVG图像时,恶意代码将在其浏览器上下文中执行。
利用方式如下:
1. 攻击者首先需要获取具有图片上传权限的账户(通常是管理员账户)。
2. 创建一个包含恶意JavaScript的SVG文件,例如使用`<script>`标签或事件处理器。
3. 通过TinyMCE编辑器将该SVG文件上传到Bagisto平台。
4. 当其他管理员或用户查看包含该SVG的页面时,恶意脚本自动执行。
5. 攻击者可通过窃取的会话凭证执行权限提升、数据窃取等进一步攻击。
该漏洞的修复方法是:在文件上传验证中添加SVG文件的MIME类型黑名单,或者对SVG文件内容进行严格的过滤,禁止其中包含`<script>`标签和事件处理器属性。Bagisto v2.3.8版本已实施相应的安全修复措施。