CVE-2025-63307 – laravel-file-manager v3.3.1 中的已认证存储型跨站脚本(XSS)漏洞
🧭 概述
laravel-file-manager v3.3.1 及以下版本中存在一个已认证的存储型跨站脚本(XSS)漏洞,允许拥有文件管理器界面访问权限的攻击者在上传或创建的文件中注入并持久化任意 JavaScript 代码。
通过上传包含恶意 JavaScript 的特制 .html 或 .svg 文件,或直接在文件管理器中创建并编辑此类文件,攻击者可实现存储型 XSS,当其他任何已认证用户或管理员通过 Web 界面查看该文件时,恶意脚本将执行。
🧱 受影响组件
- 项目:
laravel-file-manager
- 组件: 文件上传、创建和渲染功能(例如 FileManagerController.php)
- 受影响版本: v3.3.1 及以下
🎯 攻击向量
- 使用具有通过文件管理器界面上传、创建或重命名文件权限的账户进行身份验证。
- 上传或创建带有 .svg 或 .html 扩展名且包含恶意 JavaScript 的文件。
- 应用程序存储此文件时未验证其内容或清理嵌入的脚本。
- 当其他用户(如管理员或仓库维护者)在其浏览器中查看或预览该文件时,恶意 JavaScript 会在应用程序域的上下文中执行。
- 此后,该脚本可执行会话劫持、CSRF 或从受害者浏览器窃取敏感数据等操作。
💥 影响
- 存储型 XSS:在应用程序源中持久执行 JavaScript。
- 会话劫持与账户接管:攻击者可窃取 Cookie 或冒充受害者执行操作。
- 钓鱼/UI 重定向:注入的脚本可伪造 UI 元素或将用户重定向至恶意网站。
- 敏感数据泄露:可访问受害者会话所及的应用程序内信息。
CVSS v3
基础评分:8.1
向量:CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:N
严重性:高
🛡️ 推荐修复措施
- 对上传的文件实施严格的服务端内容类型验证和过滤。
- 禁止或清理上传的 .html、.svg 或其他可包含活动内容的格式。
- 通过
Content-Disposition: attachment 标头或从独立的、不可执行的域/子域提供用户上传的文件。
- 在浏览器中渲染用户控制的内容之前,应用输出编码和清理。
🙏 致谢
发现并报告者:Chayawat Jeamprasertboon、Thanakorn Boontem、Sahapon Kanajanothai 和 Theethat Thamwasin