Django 发布安全更新:5.0.7 和 4.2.14

作者:Natalia Bidart 发布于 2024年7月9日

根据我们的安全发布策略,Django 团队发布了 Django 5.0.7Django 4.2.14 版本。这些版本修复了以下详细的安全问题。我们鼓励所有 Django 用户尽快升级。

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

urlize()urlizetrunc()容易受到通过包含大量括号的特定输入进行的潜在拒绝服务攻击。

感谢 Elias Myllymäki 报告此问题。

根据 Django 安全策略,此问题的严重程度为“中等”。

CVE-2024-39329:通过密码不可用用户的计时差异进行用户名枚举

django.contrib.auth.backends.ModelBackend.authenticate()方法允许远程攻击者通过涉及对密码不可用用户的登录请求的计时攻击来枚举用户。

根据 Django 安全策略,此问题的严重程度为“低”。

CVE-2024-39330:django.core.files.storage.Storage.save() 中潜在的目录遍历漏洞

覆盖django.core.files.storage.Storage基类的派生类generate_filename()但未复制父类中存在的现有文件路径验证,在调用save().

时,通过某些输入允许潜在的目录遍历。内置Storage

子类不受此漏洞影响。

根据 Django 安全策略,此问题的严重程度为“低”。

感谢 Josh Schneier 报告此问题。

CVE-2024-39614:django.utils.translation.get_supported_language_variant() 中潜在的拒绝服务漏洞get_supported_language_variant()

在与包含特定字符的非常长的字符串一起使用时,容易受到潜在的拒绝服务攻击。CVE-2024-39614:django.utils.translation.get_supported_language_variant() 中潜在的拒绝服务漏洞为了缓解此漏洞,现在将提供给

的语言代码解析为最多 500 个字符。

根据 Django 安全策略,此问题的严重程度为“中等”。

感谢 MProgrammer 报告此问题。

  • 受影响的支持版本
  • Django 主分支
  • Django 5.1(当前处于 Beta 阶段)
  • Django 5.0

Django 4.2

解决方案

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

  • 已将解决此问题的补丁应用于 Django 的主分支、5.1 分支、5.0 分支和 4.2 分支。补丁可从以下更改集中获取。
  • 主分支上
  • 5.1 分支上
  • 5.0 分支上

CVE-2024-39329:通过密码不可用用户的计时差异进行用户名枚举

CVE-2024-39330:django.core.files.storage.Storage.save() 中潜在的目录遍历漏洞

感谢 Josh Schneier 报告此问题。

4.2 分支上

Django 4.2.14(下载 Django 4.2.14 | 4.2.14 校验和

此版本使用的 PGP 密钥 ID 为 Natalia Bidart:2EE82A8D9470983E

关于安全报告的常规说明与往常一样,我们恳请您通过私人电子邮件将潜在的安全问题报告给security@djangoproject.com

,而不是通过 Django 的 Trac 实例、Django 论坛或 django-developers 列表。请参阅我们的安全策略以获取更多信息。