• 4.2
  • dev
  • ドキュメントのバージョン: 5.0

Django 4.2.6 リリースノート

2023年10月4日

Django 4.2.6 は、重大度 "moderate" のセキュリティ問題と、4.2.5 でのいくつかのバグを修正します。

CVE-2023-43665: django.utils.text.Truncator におけるサービス拒否攻撃 (DoS) の可能性

CVE-2019-14232 の修正に伴い、django.utils.text.Truncatorchars() メソッドと words() メソッド(html=True を使用した 場合)の実装に使用される正規表現が見直され、改善されました。しかし、これらの正規表現は依然として線形バックトラッキングの複雑さを示しているため、非常に長い、潜在的に不正な HTML 入力が与えられた場合、評価は依然として遅く、潜在的なサービス拒否 (DoS) の脆弱性につながりました。

chars()words() メソッドは、それによって脆弱性があった truncatechars_htmltruncatewords_html テンプ レートフィルタの実装に使用されます。

Truncator がHTMLモードで動作している場合に処理される入力は、潜在的なパフォーマンスとメモリの問題を避けるために最初の500万文字に制限されています。

Bugfixes

  • Django 4.2.5 で修正されたリグレッションについて:非推奨の DEFAULT_FILE_STORAGE および STATICFILES_STORAGE 設定をテストでオーバーライドすると、メインの STORAGES が変更される問題がありました (#34821)。

  • Django 4.2 において、PostgreSQL で __isnull ルックアップを使用した際に、文字列ベースのフィールド (CharFieldEmailFieldTextFieldCICharFieldCIEmailField、そして CITextField) への不必要なキャストを引き起こしていたリグレッションを修正しました 。その結果、Django 4.2 以前に作成された __isnull 式や条件を使用するインデックスは、クエリプランナーによって使用されなくなり、パフォーマンスのリグレッションが発生していました (#34840)。

    Django 4.2 から 4.2.5 で作成されたインデックスには不必要な ::text キャストが含まれているため、そのようなインデックスは再作成する必要があるかもしれません。候補となるインデックスは、このクエリで見つけることができます:

    SELECT indexname, indexdef
    FROM pg_indexes
    WHERE indexdef LIKE '%::text IS %NULL';
    
Back to Top