Django 发布安全更新:4.2.1、4.1.9 和 3.2.19
根据我们的安全发布策略,Django 团队发布了Django 4.2.1、Django 4.1.9 和 Django 3.2.19。这些版本修复了下面详述的安全问题。我们鼓励所有 Django 用户尽快升级。
CVE-2023-31047:使用一个表单字段上传多个文件时可能绕过验证
使用一个表单字段上传多个文件从未被forms.FileField或forms.ImageField支持,因为只有最后一个上传的文件会被验证。不幸的是,上传多个文件主题暗示了相反的情况。
为了避免此漏洞,ClearableFileInput和FileInput表单组件现在会在multipleHTML 属性设置在其上时引发ValueError。要防止此异常并保持旧行为,请将allow_multiple_selected设置为True.
有关使用新属性和通过单个字段处理多个文件的更多详细信息,请参阅上传多个文件。
感谢 Moataz Al-Sharida 和 nawaik 报告此问题。
根据 Django 安全策略,此问题的严重程度为“低”。
受影响的支持版本
- Django 主分支
- Django 4.2
- Django 4.1
- Django 3.2
解决方案
已将解决此问题的补丁应用于 Django 的主分支以及 4.2、4.1 和 3.2 发布分支。补丁可从以下更改集中获取
已发布以下版本
- Django 4.2.1 (下载 Django 4.2.1 | 4.2.1 校验和)
- Django 4.1.9 (下载 Django 4.1.9 | 4.1.9 校验和)
- Django 3.2.19 (下载 Django 3.2.19 | 3.2.19 校验和)
此版本使用的 PGP 密钥 ID 为 Mariusz Felisiak:2EF56372BA48CD1B。
有关安全报告的一般说明
与往常一样,我们要求您通过私人电子邮件将潜在的安全问题报告给security@djangoproject.com,而不是通过 Django 的 Trac 实例或 django-developers 列表。有关更多信息,请参阅我们的安全策略。