CVE-2025-65027RomM是一款开源的ROM(游戏 ROM)管理应用程序,允许用户扫描、丰富、浏览和管理他们的游戏收藏库,并提供清晰、响应式的用户界面。该应用存在多个未限制文件上传漏洞,允许已认证用户上传恶意的 SVG 或 HTML 文件。当这些恶意文件被访问时,浏览器会执行其中嵌入的 JavaScript 代码,导致存储型跨站脚本攻击(Stored XSS)。结合 CSRF 配置错误,攻击者可以最终实现完整的 administrative 账户接管,包括创建恶意管理员账户、将攻击者账户权限提升为管理员,甚至执行更多恶意操作。此漏洞已在版本 4.4.1 和 4.4.1-beta.2 中修复。CVSS 评分 7.6,属于高危漏洞。攻击向量为网络层面,需要低权限认证和用户交互,但一旦利用成功,对系统完整性和可用性造成严重影响。
该漏洞的核心问题在于 RomM 的文件上传功能缺乏充分的输入验证和内容安全控制。具体而言:
1. 未限制文件上传:应用允许认证用户上传任意文件类型的 SVG 或 HTML 文件,而未对其进行严格的类型检查和内容过滤。
2. 存储型 XSS:上传的恶意 SVG/HTML 文件会被存储在服务器上,当其他用户访问这些文件时,浏览器会解析并执行其中嵌入的 JavaScript 代码。SVG 文件支持内联 JavaScript(<script> 标签或事件处理器如 onload),HTML 文件同样可以包含恶意脚本。
3. CSRF 配合利用:应用存在的 CSRF 防护缺陷使得攻击者可以通过 XSS 漏洞诱导管理员执行未授权操作,例如创建新管理员账户或修改现有账户权限。
4. 攻击链:攻击者首先以低权限账户登录,上传包含恶意 JavaScript 的 SVG/HTML 文件;然后诱使管理员访问该文件,从而在管理员会话中执行任意 JavaScript;最后利用 CSRF 漏洞通过该 JavaScript 创建管理员账户或将自身权限提升为管理员。
修复方案包括升级到 4.4.1 或 4.4.1-beta.2 版本,并确保文件上传功能实施严格的文件类型白名单、内容类型验证和脚本执行隔离机制。