Django 发布安全更新:4.0.6 和 3.2.14
根据 我们的安全发布策略,Django 团队发布了 Django 4.0.6 和 Django 3.2.14。这些版本修复了下面详述的安全问题。我们鼓励所有 Django 用户尽快升级。
CVE-2022-34265:通过以下参数潜在的 SQL 注入Trunc(kind)和Extract(lookup_name)参数
Trunc()和Extract()数据库函数如果使用不受信任的数据作为kind/lookup_name值,则容易受到 SQL 注入攻击。
将查找名称和种类选择限制在已知的安全列表中的应用程序不受影响。
此安全版本缓解了此问题,但我们已确定对与日期提取和截断相关的数据库 API 方法进行改进,这将有利于在 Django 4.1 最终发布之前添加到其中。这将影响使用 Django 4.1 发布候选版本 1 或更高版本的第三方数据库后端,直到它们能够更新到 API 更改为止。对于由此带来的不便,我们深感抱歉。
感谢 Takuto Yoshikai (Aeye Security Lab) 的报告。
根据 Django 安全策略,此问题的严重程度为“高”。
受影响的支持版本
- Django 主分支
- Django 4.1(目前处于 Beta 阶段)
- Django 4.0
- Django 3.2
解决方案
已将解决此问题的补丁应用于 Django 的主分支以及 4.1、4.0 和 3.2 发布分支。补丁可以从以下更改集中获取
已发布以下版本
- Django 4.0.6 (下载 Django 4.0.6 | 4.0.6 校验和)
- Django 3.2.14 (下载 Django 3.2.14 | 3.2.14 校验和)
此版本使用的 PGP 密钥 ID 为 Mariusz Felisiak:2EF56372BA48CD1B。
有关安全报告的常规说明
与往常一样,我们要求您通过私人电子邮件向security@djangoproject.com报告潜在的安全问题,而不是通过 Django 的 Trac 实例或 django-developers 列表报告。请参阅 我们的安全策略 以获取更多信息。