Django 5.0.8 版本发行说明¶
2024 年 8 月 6 日
Django 5.0.8 修复了 5.0.7 中三个严重程度为“中等”的安全问题、一个严重程度为“高”的安全问题以及多个错误。
CVE-2024-41989:django.utils.numberformat.floatformat()
中的内存耗尽问题¶
如果 floatformat
接收到科学计数法表示的数字字符串且指数较大,可能会导致显著的内存消耗。
为了避免这种情况,现在超过 200 位的十进制数会原样返回。
CVE-2024-41990:django.utils.html.urlize()
中潜在的拒绝服务漏洞¶
urlize
和 urlizetrunc
可能会因包含特定字符序列的非常大的输入而遭受潜在的拒绝服务攻击。
CVE-2024-41991: django.utils.html.urlize()
和 AdminURLFieldWidget
中潜在的拒绝服务漏洞¶
urlize
, urlizetrunc
, 和 AdminURLFieldWidget
可能会因某些包含大量 Unicode 字符的输入而受到潜在的拒绝服务攻击。
CVE-2024-42005: QuerySet.values()
和 values_list()
中潜在的 SQL 注入漏洞¶
QuerySet.values()
和 values_list()
方法在使用 JSONField
的模型上,可能会通过传递的 *arg
中精心构造的 JSON 对象键,在列别名中受到 SQL 注入攻击。
漏洞修复¶
在使用
*expressions
时,添加了对UniqueConstraint(nulls_distinct=False)
缺失的验证(#35594)。修复了 Django 5.0 中的一个回归问题,该问题导致在渲染具有
__html__
方法的模型实例时,ModelAdmin.action_checkbox
可能会破坏管理界面的变更列表 HTML 页面(#35606)。修复了在创建具有
Field.db_default
和由__endswith
、__startswith
或__contains
查找组成的Meta.constraints
约束的模型时崩溃的问题(#35625)。修复了 Django 5.0.7 中的一个回归问题,该问题导致在处理超过 500 个字符的语言代码时,
LocaleMiddleware
崩溃(#35627)。修复了 Django 5.0 中的一个错误,该错误导致当
ModelAdmin.date_hierarchy
是一个具有DateField
或DateTimeField
的output_field
的GeneratedField
时,系统检查崩溃(#35628)。修复了 Django 5.0 中的一个错误,该错误导致在验证引用使用
Field.db_default
的字段的约束时,要么崩溃,要么错误地引发验证错误(#35638)。修复了 Django 5.0 中的一个崩溃问题,该问题发生在保存包含设置了
db_default
的FileField
的模型时(#35657)。