Django 4.0.2发行说明

February 1, 2022

Django 4.0.2修复了严重程度为“Medium”的两个安全问题和4.0.1中的几个错误。此外,还收录了Tamerfex的最新字符串翻译,并特别提到了保加利亚语(完整翻译)。

CVE-2022-22818:可能的XSS通过 {% debug %} 模板标签

这个 {% debug %} 模板标记没有正确编码当前上下文,造成了XSS攻击矢量。

为了避免此漏洞, {% debug %} 方法时不再输出信息。 DEBUG 设置为 False 方法时,它确保正确转义所有上下文变量。 DEBUG 设置为 True

CVE-2022-23833:文件上传中的拒绝服务可能性

将某些输入传递给多部分表单可能会在解析文件时导致无限循环。

补补

  • 修复了Django 4.0中的错误,其中 TestCase.captureOnCommitCallbacks() 可以多次执行回调 (#33410 )。

  • 修复了Django 4.0中的回归,其中 help_text 是在自动生成的表单中进行转义的 (#33419 )。

  • 修复了Django 4.0中的一个回归,该回归导致在技术404调试页面上显示基于类的视图的名称不正确 (#33425 )。

  • 修复了Django 4.0中导致不正确 reprResolverMatch 对于基于类的视图 (#33426 )。

  • Fixed a regression in Django 4.0 that caused a crash of makemigrations on models without Meta.order_with_respect_to but with a field named _order (#33449).

  • 修复了Django 4.0中导致不正确的回归 ModelAdmin.radio_fields 管理中的布局 (#33407 )。

  • 修复了Django 4.0中的重复操作回归,该操作回归在更改外键引用的具体父模型的主键类型时导致迁移崩溃 (#33462 )。

  • Fixed a bug in Django 4.0 that caused a crash of QuerySet.aggregate() after annotate() on an aggregate function with a default (#33468).

  • 修复了Django 4.0中导致崩溃的回归 makemigrations 重命名已重命名模型的字段时 (#33480 )。