# Django 5.0.9.dev20240806133106 ドキュメント

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

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

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

## バグ修正

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

- Django 4.2 において、PostgreSQL で `__isnull` ルックアップを使用した際に、文字列ベースのフィールド (`CharField`、`EmailField`、`TextField`、`CICharField`、`CIEmailField`、そして `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';