Django 5.2.2 リリースノート¶
2025年6月4日
Django 5.2.2 では、 5.2.1 における深刻度 "low" のセキュリティの問題1件と、いくつかのバグを修正しました。
CVE-2025-48432: エスケープされていないリクエストのパスを通じた潜在的なログインジェクション¶
内部の HTTP レスポンスのロギングでは request.path を直接使用しており、制御文字(例:改行や ANSI エスケープシーケンス)がエスケープされないままログに書き込まれる可能性がありました。これによりログインジェクションや偽造が可能となり、特に外部システムで処理されるログや端末で表示されるログにおいて、攻撃者がログの見た目や構造を操作できてしまうおそれがありました。
これは Django のセキュリティモデルに直接影響を与えるものではありませんが、ログが他のツールで取り込まれたり解釈されたりする場合にリスクを伴います。これを修正するため、内部の django.utils.log.log_response() 関数は、安全なエンコーディングを用いてすべての位置指定のフォーマット引数をエスケープするようになりました。
バグ修正¶
CompositePrimaryKeyを持つモデルに由来するForeignObjectに対してselect_relatedを使用した際に発生していたクラッシュを修正しました(#36373)。Django 5.2 において、
"pk"を使用してCompositePrimaryKeyを持つモデルを参照するサブクエリで、選択された列数が多すぎるまたは少なすぎる場合にValueErrorが発生しなかったバグを修正しました(#36392)。Django 5.2 において、
QuerySet.union()に引数が渡されなかった場合にクラッシュが発生するリグレッションを修正しました(#36388)。Django 5.2 において、
process_request()をオーバーライドしているRemoteUserMiddlewareのサブクラスがサポートされなくなっていたリグレッションを修正しました(#36390)。Django 5.2 において、
Aggregate式のfilter引数内でOuterRefを使用した際にクラッシュが発生するリグレッションを修正しました(#36404)。Django 5.2 において、PostgreSQL の集約関数
ArrayAgg,StringAggおよびJSONBAgg内でOuterRefを使用した際にクラッシュが発生するリグレッションを修正しました(#36405)。Django 5.2 において、管理サイトの
filter_horizontalボタンにtype="button"が指定されていなかったため、Enter キーを押した際にフォーム送信が妨げられるリグレッションを修正しました(#36423)。Django 5.2 において、
CompositePrimaryKeyを持つモデルでid_list引数を指定してQuerySet.in_bulk()を呼び出した際に、データベースのパラメータ制限が考慮されていなかったバグを修正しました(#36416)。Django 5.2 において、
HttpRequest.get_preferred_type()がAcceptヘッダー内のメディアタイプパラメータを考慮しておらず、コンテンツネゴシエーションの特異性が低下していたバグを修正しました(#36411)。Django 5.2 において、外部キーの参照先サブクラスに対して
PrefetchのQuerySetを用いて外部キーをプリフェッチするためにQuerySet.prefetch_related()を使用するとクラッシュしていたリグレッションを修正しました( #36432 )。