Django 5.0.8 リリースノート¶
2024年8月6日
Django 5.0.8 では、5.0.7 におけるセキュリティの問題のうち深刻度 "high" 1件、深刻度 "moderate" 3件を含め、 いくつかのバグを修正しました。
CVE-2024-41989: django.utils.numberformat.floatformat()
における過剰なメモリ消費¶
floatformat
が指数部が大きい科学的表記の数値文字列を受け取った場合、著しいメモリ消費が発生する可能性があります。
これを避けるために、200桁を超える decimal はそのまま返されるようになりました。
CVE-2024-41990: django.utils.html.urlize()
における潜在的なサービス拒否(DoS)の脆弱性¶
urlize
および urlizetrunc
フィルタには、特定の文字列シーケンスを含む非常に大きな入力を介したサービス拒否(DoS)攻撃の可能性がありました。
CVE-2024-41991: django.utils.html.urlize()
および AdminURLFieldWidget
における潜在的なサービス拒否(DoS)の脆弱性¶
urlize
、urlizetrunc
、および AdminURLFieldWidget
は、非常に多くのUnicode文字を含む特定の入力を介したサービス拒否(DoS)攻撃の可能性がありました。
CVE-2024-42005: QuerySet.values()
および values_list()
におけるSQLインジェクションの可能性¶
モデルの JSONField
を持つ QuerySet.values()
メソッドおよび values_list()
メソッドは、細工されたJSONオブジェクトのキーが *arg
として渡されることで、列エイリアスでSQLインジェクションの影響を受ける可能性がありました。
バグ修正¶
UniqueConstraint(nulls_distinct=False)
を*expressions
と共に使用する際にバリデーションが欠落していたため、追加しました (#35594)。Django 5.0 で、
ModelAdmin.action_checkbox
が__html__
メソッドを持つモデルインスタンスをレンダリングする際に、管理画面のチェンジリスト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)。