Django 4.0.1发行说明

January 4, 2022

Django 4.0.1修复了一个严重程度为“中”的安全问题,两个严重程度为“低”的安全问题,以及4.0中的几个错误。

CVE-2021-45115:中的拒绝服务可能性 UserAttributeSimilarityValidator

UserAttributeSimilarityValidator 评估提交的密码时产生了大量开销,这些密码相对于比较值人为地较大。假设对用户注册的访问是不受限制的,这为拒绝服务攻击提供了一个潜在的媒介。

为了缓解此问题,现在将忽略相对较长的值 UserAttributeSimilarityValidator

这个问题的严重性是“中等”,根据 Django security policy

CVE-2021-45116:潜在的信息泄露 dictsort 模板过滤器

由于利用了Django模板语言的可变分辨率逻辑, dictsort 如果传递适当定制的密钥,模板筛选器可能容易受到信息泄漏或意外方法调用的攻击。

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

需要提醒的是,所有不受信任的用户输入都应在使用前进行验证。

这个问题的严重性是“低”,根据 Django security policy

CVE-2021-45452:潜在的目录遍历 Storage.save()

Storage.save() 如果直接传递适当定制的文件名,则允许目录遍历。

这个问题的严重性是“低”,根据 Django security policy

补补

  • Fixed a regression in Django 4.0 that caused a crash of assertFormsetError() on a formset named form (#33346).

  • 修复了Django 4.0中的一个错误,该错误导致使用 RedisCache 后端 (#33361 )。

  • 放宽了Django 4.0中添加的检查,以真正使用鸭子类型 HttpRequest 在……里面 django.views.decorators.cache.cache_control()never_cache() 装饰者 (#33350 )。

  • Fixed a regression in Django 4.0 that caused creating bogus migrations for models that reference swappable models such as auth.User (#33366).

  • 修复了一个长期存在的错误 几何图形集合Polygon 这在一些平台上造成了崩溃(在MacOS上根据 ARM64 架构) (#32600 )。