2021 年 5 月 4 日
Django 3.2.1 修复了 3.2 中的一个安全问题和几个漏洞。
MultiPartParser
、UploadedFile
和 FieldFile
允许通过上传的文件和适当制作的文件名进行目录遍历。
为了降低这种风险,现在应用了更严格的基名和路径预防。
纠正了在 Windows 上对 GDAL 3.2 的检测(#32544)。
修正了 Django 3.2 中的一个漏洞,DEFAULT_AUTO_FIELD
配置无法使用 BigAutoField
和 SmallAutoField
的子类(#32620)。
修正了 Django 3.2 中的一个缺陷,当在 QuerySet.union()
、intersection()
和 difference()
之后使用一个无注解字段进行排序的 QuerySet.values()/values_list()
会发生崩溃(#32627)。
恢复了,在 Django 3.2 中的缺陷,在技术 404 调试页面显示异常消息(#32637)。
修正了 Django 3.2 中的一个漏洞,即在 CheckConstraint.check
或 UniqueConstraint.condition
中反向查询一对一关系时,系统检查会崩溃(#32635)。
修正了 Django 3.2 中的一个缺陷,当搜索时带不平衡引号的短语时,会导致 ModelAdmin.search_fields
崩溃(#32649)。
修正了 Django 3.2 中的一个漏洞,即如果没有定义候补变量,变量查找错误会被记录在站点地图模板上(#32648)。
修正了 Django 3.2 中的一个缺陷,当组合包含布尔表达式(#32548)的 Q()
对象时导致崩溃的问题。
修正了 Django 3.2 中的一个缺陷,该缺陷导致 QuerySet.update()
在 MySQL 和 MariaDB 按继承或连接字段排序的查询集上崩溃(#32645)。
修正了 Django 3.2 中的一个缺陷,当解码由 django.contrib.messages.storage.CookieStorage
使用的 Django 3.2 之前格式的 cookie 值时,导致崩溃(#32643)。
修正了 Django 3.2 中的一个缺陷,该缺陷使 shift 键修改器无法在管理更新列表中选择多行(#32647)。
修正了 Django 3.2 中的一个bug,即系统检查会在 STATICFILES_DIRS
配置中出现 (prefix, path)
的二元元组列表时崩溃(#32665)。
修正了一个长期存在的漏洞,涉及到与子查询一起使用时的查询集按位组合,该漏洞在 Django 3.2 中开始出现,是由于一个使用 Exists
来 exclude()
多值关系的单独修正(#32650)。
修正了 Django 3.2 中的一个漏洞,即在渲染某些管理模板时记录了变量查询错误(#32681)。
在 Django 3.2 中修复了一个 bug,该 bug 导致在删除针对多值关系进行过滤的对象时,管理员 changelist 会崩溃 (#32682)。管理员 changelist 现在使用 Exists()
而不是 QuerySet.distinct()
,因为在 Django 3.2 中不允许在 distinct()
后调用 delete()
,以解决数据丢失的可能性。
修正了 Django 3.2 中的一个缺陷,即在 PostgreSQL 上调用进程环境不会被传递给 dbshell
命令(#32687)。
修正了 Django 3.2 中使用子查询构建复杂过滤器时的性能缺陷(#32632)。作为一个副作用,删除了检查 django.db.sql.query.Query
相等的私有 API。
4月 27, 2025