---
title: "Django 4.0.1 版本发行说明"
version: 6.0
locale: zh-hans
source: https://docs.djangoproject.com/zh-hans/6.0/releases/4.0.1/
canonical: https://djangodocs.dev/zh-hans/6.0/releases/4.0.1/
---
# Django 4.0.1 版本发行说明

*2022 年 1 月 4 日*

Django 4.0.1 修复了一个"中等"严重性的安全问题，两个"低"严重性的安全问题，以及 4.0 版本中的几个错误。

## CVE-2021-45115: `UserAttributeSimilarityValidator` 中存在拒绝服务的可能性

[`UserAttributeSimilarityValidator`](/zh-hans/6.0/topics/auth/passwords/#django.contrib.auth.password_validation.UserAttributeSimilarityValidator) 在评估相对于比较值人工过大的提交密码时产生了显着的开销。在假设用户注册的访问是不受限制的情况下，这为拒绝服务攻击提供了潜在的攻击矢量。

为了缓解这个问题，`UserAttributeSimilarityValidator` 现在会忽略相对较长的值。

This issue has severity "medium" according to the [Django security policy](/zh-hans/6.0/internals/security/#severity-levels).

## CVE-2021-45116: `dictsort` 模板过滤器中存在潜在的信息泄露漏洞

由于利用了 Django 模板语言的变量解析逻辑，如果传递了一个经过适当精心制作的键，[`dictsort`](/zh-hans/6.0/ref/templates/builtins/#std-templatefilter-dictsort) 模板过滤器有潜在的信息泄露或意外的方法调用漏洞。

为了避免这种可能性，`dictsort` 现在使用了受限的解析逻辑，不会调用方法，也不允许在字典上进行索引。

提醒一下，所有不受信任的用户输入在使用前都应进行验证。

This issue has severity "low" according to the [Django security policy](/zh-hans/6.0/internals/security/#severity-levels).

## CVE-2021-45452: 通过 `Storage.save()` 可能存在目录遍历漏洞

如果直接传递经过适当精心制作的文件名，`Storage.save()` 允许目录遍历。

This issue has severity "low" according to the [Django security policy](/zh-hans/6.0/internals/security/#severity-levels).

## 漏洞修复

- 修复了 Django 4.0 中的一个回归问题，该问题导致在名为 `form` 的表单集上调用 `assertFormsetError()` 时崩溃（[#33346](https://code.djangoproject.com/ticket/33346)）。
- 修复了 Django 4.0 中的一个错误，该错误导致在使用 `RedisCache` 后端时布尔值引发崩溃（[#33361](https://code.djangoproject.com/ticket/33361)）。
- 在 Django 4.0 中放宽了对于在 `django.views.decorators.cache.cache_control()` 和 `never_cache()` 装饰器中使用鸭子类型的 `HttpRequest` 的检查，以重新允许这种用法（[#33350](https://code.djangoproject.com/ticket/33350)）。
- 修复了 Django 4.0 中的一个回归问题，该问题导致创建引用可交换模型（如 `auth.User` ）的模型的虚假迁移（[#33366](https://code.djangoproject.com/ticket/33366)）。
- 修复了 [几何集合](/zh-hans/6.0/ref/contrib/gis/geos/#geos-geometry-collections) 和 [`Polygon`](/zh-hans/6.0/ref/contrib/gis/geos/#django.contrib.gis.geos.Polygon) 中的一个长期存在的 bug，该 bug 导致在某些平台上崩溃（在 macOS 上基于 `ARM64` 架构的报告）（[#32600](https://code.djangoproject.com/ticket/32600)）。
