Django 3.0.3 リリースノート

February 3, 2020

Django 3.0.3 では、3.0.2 にあった1つのセキュリティの問題といくつかのバグを修正しました。

CVE-2020-7471: StringAgg(delimiter) を通じた潜在的 SQL インジェクション

StringAgg 集計関数には、適切に加工された delimiter を使った SQL インジェクションが存在しました。

Bugfixes

  • Subquery() アノテーションから DateFieldDateTimeField、あるいは TimeField を抽出したときにクラッシュするという Django 3.0 のリグレッションを修正しました (#31133)。
  • クエリセットに集計か Exists() アノテーションが含まれる場合に、QuerySet.values()values_list() がクラッシュするという Django 3.0でのリグレッションを修正しました (#31136)。
  • Django にベース言語があるがサブ言語がない場合でも、 LANGUAGE_CODE のサブ言語を利用できるように Django 3.0 で追加されたシステムチェックの設定を緩めました (#31141)。
  • テンプレートで列挙型 TextChoicesIntegerChoices 、そして Choices が使えるようになりました (#31154)。
  • 名前付きグループが非文字列の値しか含まない場合でも max_length 属性が最長の選択に合致するようなチェックを修正しました (#31155)。
  • Subquery を利用した際、 filter 引数のある ArrayAggStringAgg がクラッシュする Django 2.2 のリグレッションを修正しました (#31097)。
  • 継承された選択をオーバーライドしたときに get_FOO_display() が正しく動かなくなる Django 2.2.7 のリグレッションを修正しました (#31124)。
  • カスタム ContentType 外部キーを持つ GenericForeignKey に対する``QuerySet.prefetch_related()`` がクラッシュする Django 3.0 のリグレッションを修正しました (#31190)。