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 中的一个回归问题,该问题导致类基视图的 ResolverMatchrepr 不正确(#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)。