Django 3.2.5 版本发行说明
2021 年 7 月 1 日
Django 3.2.5 修复了一个严重程度为 “高” 的安全问题和 3.2.4 中的几个漏洞。此外,还加入了 Transifex 的最新字符串翻译。
CVE-2021-35042:通过未检验的 QuerySet.order_by()
输入进行潜在的 SQL 注入
传递给 QuerySet.order_by()
的未经检验的用户输入可能会绕过标记为废弃的路径中的预期列引用验证,导致潜在的 SQL 注入,即使已发出废弃警告。
作为一种缓解措施,严格的列引用验证在废弃期间被恢复了。这个缺陷出现在 3.1 中,是修复 #31426 的副作用。
这个问题不存在于主分支中,因为废弃的路径已经被删除。
漏洞修复
- 修正了 Django 3.2 中的一个缺陷,该缺陷导致
QuerySet.values_list(..., named=True)
在prefetch_related()
之后崩溃(#32812)。 - 修正了 Django 3.2 中的一个漏洞,在 MySQL 8.0.13 以上版本中,将
BinaryField
、JSONField
或TextField
改为非空值时,会造成迁移崩溃(#32503)。 - 修正了 Django 3.2 中的一个缺陷,在 MySQL 8.0.13 以上版本中,当添加默认值为空的
BinaryField
、JSONField
或TextField
时,会导致迁移崩溃(#32832)。 - 修正了 Django 3.2 中的一个漏洞,即系统检查会在模型上出现无效的
app_label
时崩溃(#32863)。