Pythonのフレームワーク Django、アップデートでSQLインジェクションの脆弱性を修正(CVE-2025-59681)

セキュリティニュース

投稿日時: 更新日時:

Pythonのフレームワーク Django、アップデートでSQLインジェクションの脆弱性を修正(CVE-2025-59681)

2025年10月1日、Djangoチームはセキュリティリリースとして Django 5.2.7 / 5.1.13 / 4.2.25 を公開しました。本アップデートでは、高深刻度のSQLインジェクション(CVE-2025-59681)低深刻度のディレクトリトラバーサル(CVE-2025-59682) を修正しています。サポート中の全系統(main、6.0 α、5.2、5.1、4.2)にパッチが適用済みです。該当バージョンへの更新を最優先で実施してください。

脆弱性の概要

CVE-2025-59681(High):MySQL/MariaDBでのSQLインジェクション

  • 影響範囲:MySQL / MariaDB バックエンドを使用するDjangoアプリ

  • 影響箇所:QuerySet.annotate() / alias() / aggregate() / extra()

  • 内容:これらのメソッドに 辞書の展開(**kwargs で渡す 列エイリアス(別名) に細工した文字列が混入すると、SQL文が意図せず改変される可能性がありました。

  • 想定される被害:データの 漏えい・改ざん・破壊、アプリの挙動不正

ポイント:エイリアス名は通常開発者が静的に指定しますが、レポートでは ユーザー入力が混入した別名 を辞書展開で渡すようなコードが悪用経路となり得ることが示されています。MySQL/MariaDBの方言・引用ルールの影響もあり、当該バックエンドで発現します。

CVE-2025-59682(Low):archive.extract() の部分的ディレクトリトラバーサル

  • 影響範囲:startapp --template / startproject --template で利用される django.utils.archive.extract()

  • 内容:展開先ディレクトリと同じ接頭辞を持つパス を含むアーカイブを処理した際に、意図外の場所へ一部ファイルが書き出される可能性がありました。

  • 想定される被害:テンプレートが 信頼できない出所 の場合、セットアップ時にファイル上書き等のリスク

対象・修正バージョン

  • 対象系統:main / 6.0(α)/ 5.2 / 5.1 / 4.2

  • リリース済み修正:

    • Django 5.2.7

    • Django 5.1.13

    • Django 4.2.25

extra() はレガシーAPIですが、既存コードで残っているケースがあるため要確認です。