Django 5.1.1 リリースノート¶
2024年9月3日
Django 5.1.1 では、5.1 におけるセキュリティの問題のうち深刻度 "moderate" 1件、深刻度 "low" 1件を含め、いくつかのバグを修正しました。
CVE-2024-45230: django.utils.html.urlize()
におけるサービス拒否(DoS)の脆弱性の可能性¶
urlize
および urlizetrunc
フィルタには、特定の文字列シーケンスを含む非常に大きな入力を介したサービス拒否(DoS)攻撃の可能性がありました。
CVE-2024-45231: パスワードリセット時のレスポンスステータスによるユーザーのメールアドレス列挙の可能性¶
メール送信の失敗が適切に処理されておらず、 PasswordResetForm
クラスは、リモート攻撃者がパスワードリセットリクエストを送信し、その結果を観察することでユーザーのメールアドレスを列挙できる状態になっていました。
このリスクを軽減するために、パスワードリセットメール送信中に発生する例外は、 django.contrib.auth ロガーを使用して処理され、ログに記録されるようになりました。
バグ修正¶
Django 5.1 におけるリグレッションが修正されました。具体的には、
Window()
に空のシーケンスをorder_by
パラメータとして渡した場合のクラッシュ、および順序指定のないスライスされたクエリセットをPrefetch()
に渡した場合のクラッシュが修正されました (#35665)。Django 5.1 のリグレッションが修正されました。このリグレッションでは、新しい
usable_password
フィールドがBaseUserCreationForm
(およびその子クラス)に含まれていました。このフィールドを管理画面での使用に限定するため、新たにAdminUserCreationForm
が追加されました。この修正により、機能が本来意図されていた管理画面に隔離されました (#35678)。Model.save()
およびModel.asave()
における非推奨警告のstacklevel
が調整され、問題のある呼び出し箇所を正確に指すようになりました (#35060)。FileSystemStorage
でOS_OPEN_FLAGS
を使用した際の非推奨警告におけるstacklevel
が調整され、問題のある呼び出し箇所を正確に指すようになりました (#35326)。FieldCacheMixin.get_cache_name()
における非推奨警告のstacklevel
が調整され、問題のある呼び出し箇所を正確に指すようになりました (#35405)。Django 5.1 におけるリグレッションが修正され、PostgreSQL バックエンドの
init_connection_state
メソッド内で使用されるタイムゾーンおよびロール設定の動作をオーバーライドできる機能が復元されました (#35688)。Django 5.1 において、管理画面のフィールドセットをレンダリングする際に変数の参照エラーがログに記録されていたバグが修正されました (#35716)。