Django 5.1.1发布说明

September 3, 2024

Django 5.1.1修复了5.1中的一个严重性为“中等”的安全问题、一个严重性为“低”的安全问题以及几个错误。

UTE-2024-45230:中的潜在拒绝服务漏洞 django.utils.html.urlize()

urlizeurlizetrunc 通过具有特定字符序列的非常大的输入而受到潜在的拒绝服务攻击。

UTE-2024-45231:通过密码重置的响应状态列举潜在用户电子邮件

由于未处理的电子邮件发送失败, PasswordResetForm 类允许远程攻击者通过发出密码重置请求并观察结果来列举用户电子邮件。

为了减轻此风险,现在使用 django.contrib.auth 记录员。

错误修正

  • 修复了Django 5.1中导致崩溃的回归 Window() 当将空序列传递给 order_by 参数,以及 Prefetch() 对于无需订购的切片查询集 (#35665 ).

  • 修复了Django 5.1中的回归,其中新的 usable_password 字段已包含在 BaseUserCreationForm (and儿童)。一个新 AdminUserCreationForm 添加了包括此字段,将该功能与预期的管理员隔离 (#35678 ).

  • 调整了弃用警告 stacklevelModel.save()Model.asave() 正确指出违规呼叫地点 (#35060 ).

  • 调整了弃用警告 stacklevel 当使用 OS_OPEN_FLAGSFileSystemStorage 正确指出违规呼叫地点 (#35326 ).

  • 调整了弃用警告 stacklevelFieldCacheMixin.get_cache_name() 正确指出违规呼叫地点 (#35405 ).

  • 在Django 5.1中进行回归后,恢复了覆盖时区和角色设置行为的能力, init_connection_state PostgreSQL后台的方法 (#35688 ).

  • 修复了Django 5.1中的一个错误,该错误在渲染管理字段集时会记录变量查找错误 (#35716 ).