Multiple Django Vulnerability Expose Applications to SQL Injection and DoS Attacks
2025/12/03 gbhackers — Django 開発チームがリリースしたのは、人気 Python Web フレームワークにおける3つのメジャー・バージョン向けの重大なセキュリティ・パッチである。このパッチで修正された、2件の脆弱性 CVE-2025-13372/CVE-2025-64460 は、アプリケーションを SQL インジェクション攻撃およびサービス拒否 (DoS) 攻撃にさらす可能性のあるものだ。

2025年12月2日に公開された更新は、Django バージョン 5.2.9/5.1.15/4.2.27 に加え、近日リリース予定の Django 6.0 およびメイン開発ブランチも対象とするものだ。
SQL インジェクションの脆弱性
1つ目の脆弱性 CVE-2025-13372 (High) は、PostgreSQL データベースで FilteredRelation 機能を使用する場合に発生する、深刻な SQL インジェクションの欠陥である。
セキュリティ研究者 Stackered が発見したのは、QuerySet.annotate() または QuerySet.alias() メソッドに、特別に細工した辞書をキーワード引数として渡すことで、この脆弱性の悪用が可能になることだ。
| CVE ID | Vulnerability | Severity |
|---|---|---|
| CVE-2025-13372 | SQL Injection in FilteredRelation | High |
| CVE-2025-64460 | Denial-of-Service in XML Serializer | Moderate |
この脆弱性は、特に FilteredRelation の列エイリアスの処理に問題があり、データベース・クエリへの任意の SQL コード注入を、攻撃者に対して許す可能性がある。その結果として、影響を受ける Django アプリケーション内のデータが、不正に閲覧/変更/削除されるおそれがある。
サービス拒否 (DoS) の脆弱性
2つ目の脆弱性 CVE-2025-64460 (Moderate) は、Django の XML シリアライゼーション機能に存在するサービス拒否 (DoS) 脆弱性である。
django.core.serializers.xml_serializer.getInnerText() 関数には、アルゴリズムの複雑さに起因する問題があることを、セキュリティ研究者である Seokchan Yoon が発見した。この脆弱性を悪用する攻撃者は、XML デシリアライザを利用するサービスに対して、特別に細工した XML 入力を送信することで、CPU およびメモリの過剰消費を引き起こす可能性がある。
この問題は、再帰的なテキスト・ノード収集時に文字列連結が繰り返される実装に起因し、超線形な計算量を発生させる。その結果として、サービス性能が著しく低下し、場合によってはサービス全体が停止するおそれがある。
影響範囲と更新情報
これらの脆弱性が影響を及ぼす範囲は、Django 4.2/5.1/5.2、および近日公開候補の 6.0 リリースを含む、現在サポートされている全 Django バージョンである。
すでに Django セキュリティ・チームは、影響を受ける全ブランチ向けのパッチを GitHub 上で公開するとともに、公式 Django Web サイトからダウンロード可能な更新バージョンをリリースしている。
この更新版は、Natalia Bidart の PGP キー ID 2EE82A8D9470983E により署名されている。ユーザーは、影響を受ける環境を直ちに更新し、SQL インジェクションおよび DoS 攻撃によるリスクを低減する必要がある。
Django の2つの脆弱性は、どちらも内部処理の仕組みが原因となり深刻な影響を及ぼすものです。特に SQL インジェクションの問題は、FilteredRelation の列名処理が十分に検証されず、辞書入力がそのままクエリに反映されてしまう設計上の抜けが原因とされています。また、XML シリアライザの DoS 脆弱性も、テキスト結合の実装が非効率なことで負荷が急増するというものです。ご利用のチームは、ご注意ください。よろしければ、Django での検索結果も、ご参照ください。
You must be logged in to post a comment.