Django 5.1.4发布说明

December 4, 2024

Django 5.1.4修复了5.1.3中的一个严重程度为“高”的安全问题、一个严重程度为“中等”的安全问题以及几个错误。

UTE-2024-53907:拒绝服务的可能性 strip_tags()

strip_tags() 评估包含大量嵌套不完整HTML实体序列的某些输入将极其缓慢。的 strip_tags() 方法用于实现相应的 striptags 模板过滤器,因此也很脆弱。

strip_tags() 现在有递归调用的上限, HTMLParser 在提出一个 SuspiciousOperation 例外.

请记住,绝对不提供有关结果的保证 strip_tags() HTML安全。因此,永远不要将结果标记为安全 strip_tags() 调用而不先逸出它,例如 django.utils.html.escape()

UTE-2024-53908:潜在的SQL注入 HasKey(lhs, rhs) 在Oracle上

直接使用 django.db.models.fields.json.HasKey 如果将不受信任的数据用作 lhs

使用 has_key 通过 __ 语法不受影响。

错误修正

  • 修复了在 createsuperuser 在Python 3.13+上由未处理引起 OSError 当用户名无法确定时 (#35942 ).

  • 修复了Django 5.1中的回归,其中调用时关系字段未更新 Model.refresh_from_db() 在具有延迟字段的实例上 (#35950 ).