30秒で判断
- 対応すべき人: Django 5.2系(5.2.17 未満)または 6.0系(6.0.8 未満)で GeoDjango(
django.contrib.gis)を利用している方 - 対応不要な人: GeoDjangoを使用していない方、既に 5.2.17 / 6.0.8 以降へ更新済みの方
- 確認コマンド:
python -c "import django; print(django.get_version())"でバージョンを確認
概要
CVE-2026-15307 は、Django 5.2 (5.2.17より前) および 6.0 (6.0.8より前) の GeoDjango に存在する脆弱性です。
GeoDjango の空間ルックアップは、右辺値を楽観的にラスタとして解釈するため、django.contrib.gis.gdal.GDALRaster のコンストラクタへ値を渡します。GeometryField や RasterField に対する空間ルックアップで使われる値はこのコンストラクタに到達し、その中には信頼できない入力も含まれます。たとえば、閲覧権限を持つスタッフユーザーがDjango管理画面の変更一覧(changelist)のクエリ文字列から空間フィールドのフィルタを送信した場合などです。この結果、ファイルの書き込みや外部への通信を誘発される可能性があります。あわせて、深くネストした GEOMETRYCOLLECTION の解析による再帰過多でDoSに至る CVE-2026-15830 も同時に公開されています。
CVSSと攻撃の前提
| 項目 | 内容 |
|---|---|
| CVSSスコア | 8.8(High / CVSS v3.1) |
| ベクトル | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 認証 | 一部必要(例: 閲覧権限を持つスタッフユーザー) |
| 前提 | GeoDjango の空間ルックアップに外部入力が到達すること |
影響を受けるソフトウェア
| 製品 | バージョン | 修正バージョン |
|---|---|---|
| Django | 5.2 〜 5.2.16 | 5.2.17 |
| Django | 6.0 〜 6.0.7 | 6.0.8 |
修正バージョンと回避策
- Django を 5.2.17 以降、または 6.0.8 以降へアップデートしてください。
- すぐに更新できない場合は、空間フィールドのフィルタに外部入力を直接渡さないよう入力経路を見直してください。
- 同時公開の CVE-2026-15830(DoS)も同じ修正リリースで対処されます。
関連リンク
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
