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)。