Django 4.0.2 版本发行说明
2022 年 2 月 1 日
Django 4.0.2 修复了两个”中等”严重性的安全问题,以及 4.0.1 版本中的几个错误。此外,最新的 Transifex 字符串翻译已经整合,特别提及保加利亚语(完全翻译)。
CVE-2022-22818: 可能通过 {% debug %}
模板标签进行跨站脚本攻击 (XSS) 攻击
{% debug %}
模板标签没有正确编码当前上下文,存在跨站脚本攻击 (XSS) 攻击风险。
为了避免这个漏洞,当 DEBUG
设置为 False
时,{% debug %}
不再输出信息,并且在 DEBUG
设置为 True
时,它确保所有上下文变量都正确地进行了转义。
CVE-2022-23833 : 文件上传中可能存在拒绝服务漏洞。
传递特定的输入到多部分表单可能导致在解析文件时进入无限循环。
漏洞修复
- 修复了 Django 4.0 中的一个 bug,该 bug 导致
TestCase.captureOnCommitCallbacks()
可能会多次执行回调函数(#33410)。 - 修复了 Django 4.0 中的一个回归问题,该问题导致在自动生成的表单中对
help_text
进行 HTML 转义(#33419)。 - 修复了 Django 4.0 中的一个回归问题,该问题导致在技术性 404 调试页面上显示类基视图的不正确名称(#33425)。
- 修复了 Django 4.0 中的一个回归问题,该问题导致类基视图的
ResolverMatch
的repr
不正确(#33426)。 - 修复了 Django 4.0 中的一个回归问题,该问题导致在没有
Meta.order_with_respect_to
但具有名为_order
的字段的模型上运行makemigrations
时崩溃(#33449)。 - 修复了 Django 4.0 中的一个回归问题,该问题导致管理员中 ModelAdmin.radio_fields 布局不正确(#33407)。
- 修复了 Django 4.0 中的一个重复操作回归问题,该问题导致在更改外键引用的具体父模型的主键类型时,迁移崩溃(#33462)。
- 修复了 Django 4.0 中的一个 bug,该 bug 导致在对带有 default 的聚合函数进行
annotate()
后调用QuerySet.aggregate()
时崩溃(#33468)。 - 修复了 Django 4.0 中的一个回归问题,该问题导致在重命名模型的字段时运行
makemigrations
时崩溃(#33480)。