概要
Django 4.2.25未満、5.1.13未満、5.2.7未満において、QuerySet.annotate()、QuerySet.alias()、QuerySet.aggregate()、QuerySet.extra() メソッドの **kwargs 引数にカラムエイリアスを指定する際、辞書展開(**dict)を利用した細工された入力を渡すことでSQLインジェクションが可能な脆弱性が存在します(CVE-2025-59681)。
MySQL および MariaDB を使用している環境に限定されますが、認証不要のリモート攻撃者が任意のSQLを実行できる状態であり、データベースの機密性・完全性・可用性すべてに深刻な影響を及ぼします。
CVSSベクトル
| 要素 | 値 | 説明 |
|---|---|---|
| Attack Vector | Network | ネットワーク経由 |
| Attack Complexity | Low | 特別な条件不要 |
| Privileges Required | None | 認証不要 |
| User Interaction | None | ユーザー操作不要 |
| Scope | Unchanged | |
| Confidentiality | High | |
| Integrity | High | |
| Availability | High |
CVSS 3.1 Base Score: 9.8 (Critical)
ベクトル: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| Django | Django Software Foundation | 4.2.x < 4.2.25 |
| Django | Django Software Foundation | 5.1.x < 5.1.13 |
| Django | Django Software Foundation | 5.2.x < 5.2.7 |
注意: この脆弱性は MySQL および MariaDB バックエンドを使用している場合にのみ影響します。PostgreSQL や Oracle では影響を受けません。
修正バージョンと回避策
修正バージョン:
- Django 4.2.25 以降
- Django 5.1.13 以降
- Django 5.2.7 以降(最新の5.2系の場合は 5.2.14 以降を推奨)
回避策: **kwargs 展開を伴う辞書を annotate()、alias()、aggregate()、extra() メソッドに渡す際は、信頼できるデータのみを使用するようにアプリケーションコードを見直してください。ただし、パッチ適用が最も確実な対策です。
関連リンク
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
