Django 发布安全更新:4.2.7、4.1.13 和 3.2.23
根据我们的安全发布政策,Django 团队发布了Django 4.2.7、Django 4.1.13 和 Django 3.2.23。这些版本修复了下面详述的安全问题。我们鼓励所有 Django 用户尽快升级。
CVE-2023-46695:潜在的拒绝服务漏洞存在于UsernameField在 Windows 上
NFKC 规范化在 Windows 上速度很慢。因此,django.contrib.auth.forms.UsernameField容易受到使用大量 Unicode 字符的特定输入的潜在拒绝服务攻击。
为了避免此漏洞,长度超过UsernameField.max_length的无效值不再进行规范化,因为无论如何它们都无法通过验证。
感谢 MProgrammer 报告此问题。
根据 Django 安全策略,此问题的严重程度为“中等”。
受影响的支持版本
- Django 主分支
- Django 5.0(当前处于 Beta 阶段)
- Django 4.2
- Django 4.1
- Django 3.2
解决方案
已将解决此问题的补丁应用于 Django 的主分支和 5.0、4.2、4.1 和 3.2 发布分支。可以从以下更改集中获取补丁
已发布以下版本
- Django 4.2.7 (下载 Django 4.2.7 | 4.2.7 校验和)
- Django 4.1.13 (下载 Django 4.1.13 | 4.1.13 校验和)
- Django 3.2.23 (下载 Django 3.2.23 | 3.2.23 校验和)
此版本使用的 PGP 密钥 ID 为 Mariusz Felisiak:2EF56372BA48CD1B。
关于安全报告的常规说明
与往常一样,我们要求您通过私人电子邮件将潜在的安全问题报告给security@djangoproject.com,而不是通过 Django 的 Trac 实例或 django-developers 列表。有关更多信息,请参阅我们的安全政策。