# Django 5.2.8 documentation

# Django 4.0.1 版本发行说明

2022 年 1 月 4 日

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

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

`UserAttributeSimilarityValidator` 在评估相对于比较值人工过大的提交密码时产生了显着的开销。在假设用户注册的访问是不受限制的情况下，这为拒绝服务攻击提供了潜在的攻击矢量。

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

根据 Django 安全政策，这个问题的严重性为“中等”。

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

由于利用了 Django 模板语言的变量解析逻辑，如果传递了一个经过适当精心制作的键，`dictsort` 模板过滤器有潜在的信息泄露或意外的方法调用漏洞。

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

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

根据 Django 安全政策，这个问题的严重性为“低”。

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

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

根据 Django 安全政策，这个问题的严重性为“低”。

## 漏洞修复

- 修复了 Django 4.0 中的一个回归问题，该问题导致在名为 `form` 的表单集上调用 `assertFormsetError()` 时崩溃（#33346）。

- 修复了 Django 4.0 中的一个错误，该错误导致在使用 `RedisCache` 后端时布尔值引发崩溃（#33361）。

- 在 Django 4.0 中放宽了对于在 `django.views.decorators.cache.cache_control()` 和 `never_cache()` 装饰器中使用鸭子类型的 `HttpRequest` 的检查，以重新允许这种用法（#33350）。

- 修复了 Django 4.0 中的一个回归问题，该问题导致创建引用可交换模型（如 `auth.User` ）的模型的虚假迁移（#33366）。

- 修复了 几何集合 和 `Polygon` 中的一个长期存在的 bug，该 bug 导致在某些平台上崩溃（在 macOS 上基于 `ARM64` 架构的报告）（#32600）。