# Django 5.2.8 documentation

# 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）。