CVE-2025-61514CVE-2025-61514是SageMath公司开发的CoCalc协作计算平台中存在的一个任意文件上传漏洞。该漏洞存在于commit 0d2ff58之前的CoCalc版本中,攻击者可以通过上传精心构造的SVG文件来执行任意代码。CoCalc是一个基于云的协作计算平台,集成了SageMath、Jupyter、LaTeX等多种数学和科学计算工具,广泛应用于学术研究、数学教学和数据分析领域。由于该平台支持多种文件格式的上传和管理,攻击者利用SVG文件中可嵌入JavaScript代码的特性,绕过了文件类型验证机制,从而实现服务器端的代码执行。该漏洞的CVSS 3.1评分为6.5分,属于中危级别,其攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需认证(PR:N),无需用户交互(UI:N),对机密性和完整性有低影响,对可用性无影响。该漏洞的修复通过commit 0d2ff58完成,该提交增加了对上传文件类型的安全验证机制。鉴于CoCalc平台的用户群体主要为学术和研究机构,且该漏洞无需认证即可利用,因此该漏洞对相关用户的数据安全和系统安全构成了实质性威胁。
该漏洞的核心原理在于CoCalc平台对SVG文件的上传验证机制存在缺陷。SVG(Scalable Vector Graphics)是一种基于XML的矢量图形格式,与传统的位图格式不同,SVG文件本质上是一个XML文档,可以包含JavaScript脚本代码、HTML元素以及外部资源引用。当用户上传SVG文件时,如果服务器端仅通过文件扩展名(.svg)进行类型判断,而没有对文件内容进行深度检查和脚本代码过滤,攻击者就可以构造一个包含恶意JavaScript代码的SVG文件。该SVG文件中的JavaScript代码会在文件被预览或渲染时执行,从而实现客户端攻击。更严重的是,如果CoCalc服务器在处理SVG文件时使用了存在漏洞的库或配置不当的服务端渲染功能,恶意代码可能在服务器端执行,导致远程代码执行(RCE)。攻击者通过精心构造包含服务器端脚本标签或利用XML外部实体(XXE)注入的SVG文件,可以绕过安全检查,实现对服务器的控制。修复方案(commit 0d2ff58)通过增强文件上传验证机制,包括对SVG文件内容的严格检查、禁用SVG中的脚本执行、以及实施更严格的MIME类型验证来修复此漏洞。