Django 4.2.21 リリースノート

2025年5月7日

Django 4.2.21 では 4.2.20 における深刻度 "moderate" のセキュリティの問題、データ損失のバグ、リグレッションを修正しました。

このリリースは、アップグレードされた setuptools を使用してビルドされており、 PEP 491 および PEP 625 に準拠したファイル名を生成するようになりました。これにより、非準拠な配布ファイル名に関する PyPI の警告が解消されます。この変更は Django のパッケージングプロセスのみに影響し、Django の動作自体には影響しません。

CVE-2025-32873: strip_tags() における DoS 攻撃の可能性

strip_tags() は、不完全な HTML タグが大量に連続する特定の入力を処理する際に評価が遅くなる問題がありました。この関数はテンプレートフィルター striptags の実装にも使用されているため、同様の影響を受ける脆弱性が存在していました。

strip_tags() は、異常に多くの未閉鎖の開始タグを検出した場合に、SuspiciousOperation 例外を送出するようになりました。

バグ修正

  • allow_overwrite=True の場合に、 file_move_safe() でデータ破損が発生する可能性があった問題を修正しました。以前より大きいファイルを小さいファイルで上書きした際、ファイルの切り詰め処理が行われなかったため、古い内容の一部が残ることがありました(#36298)。

  • Django 4.2.20 において、 CVE 2025-26699 の修正時に導入されたリグレッションを修正しました。このリグレッションにより、wordwrap テンプレートフィルターがテキストを折り返した後に、段落間の空行を保持しない問題が発生していました(#36341)。