Djangoプロジェクトはセキュリティアップデートとして、Django 6.0.8およびDjango 5.2.17をリリースしました。これは4件の脆弱性に対処するもので、サーバーサイドリクエストフォージェリ(SSRF)、リモートコード実行(RCE)につながる恐れのある任意ファイル書き込み、サービス拒否(DoS)、そして格納型クロスサイトスクリプティング(XSS)攻撃を引き起こす可能性があります。
SecurityProducts & Services
Natalia Bidart氏が2026年8月4日に投稿したアドバイザリでは、サポート対象のDjangoブランチを利用しているすべてのユーザーに対し、速やかなアップグレードを呼びかけています。パッチはDjangoのメインブランチおよび6.1リリース候補版にも適用済みです。
Djangoの脆弱性
最も深刻な問題はCVE-2026-15307として追跡されており、DjangoのGeographic Information System(GeoDjango)における空間検索(spatial lookups)機能に影響します。
この脆弱性により、ラスターデータを表す文字列型・辞書型の値をGDALRasterに渡すことが可能でした。インストールされているラスタードライバーや設定によっては、この挙動によってDjangoプロセスがディスクにファイルを書き込んだり、外向きのネットワークリクエストを開始したりする可能性がありました。
環境によっては、攻撃者がこの任意ファイル書き込みを悪用してリモートコード実行を達成できる可能性もあります。この脆弱性はDjango管理画面のチェンジリスト経由でアクセス可能であり、空間フィールドを含む登録済みモデルへの閲覧権限を持つスタッフユーザーが、細工したルックアップパラメータを渡すことで悪用できました。
CVE-2026-15307の脆弱性を緩和するため、Djangoは現在、有効なGEOSGeometryオブジェクトではない辞書型の値や文字列が空間検索に使用されることをブロックするようになりました。
この変更は、ルックアップにおいてシリアライズされた辞書やそれに類する値に依存しているアプリケーションにとっては後方互換性のない変更となります。
Djangoは、モデルフィールドへの直接的な代入については変更がなく、引き続きこれらの形式を受け付けると強調していますが、開発者は信頼できない空間データを処理する前に検証を行うべきだとしています。
プロジェクトはこの問題を「高」深刻度と評価しており、報告者としてBence Nagy氏、localhost-detect氏、kimchunbok_氏に謝辞を述べています。
Djangoは2件のサービス拒否(DoS)脆弱性にも対処しました。CVE-2026-15337は関数django.utils.translation.check_for_language()に影響するもので、多数のユニークかつ長大な言語コードを処理する際に、プロセスメモリを過剰に消費する可能性がありました。
こうした値は、オプションのdjango.views.i18n.set_language()エンドポイントに対してPOSTデータ経由で送信できました。Djangoによれば、リクエストサイズの制限やキャッシュの上限によって実際の影響は限定的だったとのことですが、今回のアップデートでは、500文字を超える言語コードはキャッシュルックアップに入る前に拒否されるようになりました。この脆弱性は「低」深刻度と評価されています。
「中」深刻度と評価されているCVE-2026-15830は、GEOSGeometryが処理する深くネストされたGEOMETRYCOLLECTIONオブジェクトに関する問題です。悪意を持って細工されたジオメトリによって、GEOSライブラリでセグメンテーション違反が発生し、アプリケーションプロセスが中断される恐れがありました。
これへの対応として、Djangoは現在、Well-Known Text(WKT)形式の入力に対してはネストされたジオメトリコレクションを198個まで、Well-Known Binary(WKB)形式の入力に対しては合計198コレクションまでという制限を設けています。
管理者は新しく追加されたmax_geom_collections引数を使ってこのしきい値を調整できます。なお、GeoJSONは脆弱性のあるGEOS経路ではなくGDAL経由でパースされるため、この問題の影響を受けません。
最後に、CVE-2026-15920はDjango管理画面における「中」深刻度の格納型XSSリスクに対処するものです。従来、URLFieldの値は、スキームの安全性を確認しないまま、チェンジリストや読み取り専用フィールドにクリック可能なリンクとして表示されていました。
Djangoは現在、URLValidatorを用いた検証チェックを実装しており、無効なURLはプレーンテキストとして表示されるようになりました。Django 6.0系または5.2系を使用している組織は、直ちに6.0.8または5.2.17にアップグレードし、管理画面へのアクセス権限、GIS検索機能の利用状況、そして外部に露出している管理インターフェースを見直すことが推奨されます。
ALERT: 20+ government sites delivered malware to businesses and citizens. See full attack research to check your own exposure.
Malwareremoval service
翻訳元: https://gbhackers.com/django-flaws/