Django 5.1.4 版本发行说明

2024 年 12 月 4 日

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

CVE-2024-53907: strip_tags() 中潜在的拒绝服务漏洞

strip_tags() 在处理某些包含大量嵌套不完整 HTML 实体的输入时,评估速度会极其缓慢。strip_tags() 方法用于实现相应的 striptags 模板过滤器,因此该过滤器也容易受到攻击。

strip_tags() 现在在引发 SuspiciousOperation 异常之前,对 HTMLParser 的递归调用次数设置了上限。

请记住,strip_tags() 的结果绝对不保证是安全的 HTML。因此,在将 strip_tags() 调用的结果标记为安全之前,绝对不要忘记首先进行转义,例如使用 django.utils.html.escape()

CVE-2024-53908: 在 Oracle 上通过 HasKey(lhs, rhs) 潜在的 SQL 注入漏洞

在 Oracle 上直接使用 django.db.models.fields.json.HasKey 查找时,如果将不受信任的数据用作 lhs 值,可能会受到 SQL 注入攻击。

通过 __ 语法使用 has_key 查找的应用程序不受影响。

漏洞修复

  • 修复了在 Python 3.13+ 上 createsuperuser 崩溃的问题,该问题是由于在无法确定用户名时未处理的 OSError 引起的(#35942)。

  • 修复了 Django 5.1 中的一个回归问题,该问题导致在对具有延迟字段的实例调用 Model.refresh_from_db() 时未更新关系字段(#35950)。