头像上传时的 Label Studio XSS 漏洞 (CVE-2023-47115)
CVE编号
CVE-2023-47115利用情况
暂无补丁情况
N/A披露时间
2024-01-24漏洞描述
Label Studio是一款流行的开源数据标注工具。1.9.2版本之前存在跨站脚本(XSS)漏洞,当已认证的用户上传一个特制的头像图像文件时,该文件会在网站上被渲染为HTML文件,并可能被滥用。执行任意JavaScript代码可能导致攻击者对使用Label Studio的用户进行恶意操作,前提是他们访问了特制的头像图像。例如,攻击者可以创建一个JavaScript有效载荷,如果Django管理员访问该图像,则会添加一个新的Django超级管理员用户。在`users/functions.py`的18-49行显示,唯一的验证检查是通过提取文件的尺寸来验证该文件是否是图像。Label Studio使用Django的内置`serve`视图来提供头像图像,但根据Django的文档,该视图在生产环境中不安全。Django `serve`视图的问题在于它通过URL路径中的文件扩展名确定响应的`Content-Type`。因此,攻击者可以上传一个包含恶意HTML代码的图像,并将文件命名为 `.html` 扩展名以渲染为HTML页面。仅在客户端进行文件扩展名验证,易于绕过。版本1.9.2修复了此问题。其他应对策略包括在服务器端而不是在客户端代码中验证文件扩展名;移除使用Django的`serve`视图并实现一个安全的控制器来查看上传的头像图像;将文件内容保存在数据库中而不是文件系统中,以减轻其他与文件相关的漏洞,并避免信任用户可控输入。解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。- 攻击路径 网络
- 攻击复杂度 低
- 权限要求 无
- 影响范围 已更改
- 用户交互 需要
- 可用性 低
- 保密性 低
- 完整性 低
CWE-ID | 漏洞类型 |
CWE-79 | 在Web页面生成时对输入的转义处理不恰当(跨站脚本) |
Exp相关链接

版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论