Django 4件の脆弱性が FIX:RCE/ SSRF/DoS/XSS の恐れ

Django Flaws Let Attackers Trigger RCE, SSRF, DoS, and XSS Attacks

2026/08/05 gbhackers — Django プロジェクトが公表したのは、セキュリティ脆弱性を修正する Django 6.0.8/Django 5.2.17 のリリースである。具体的には、サーバサイド・リクエスト・フォージェリ (SSRF)/リモート・コード実行 (RCE) につながる任意ファイルへの書き込み/サービス拒否 (DoS)/格納型クロスサイト・スクリプティング (XSS) 攻撃を引き起こす可能性がある 4 件の脆弱性に対処した。2026年8月4日に Natalia Bidart が投稿したアドバイザリでは、サポート対象の Django ブランチのすべてのユーザーに対して、速やかなアップグレードが促されている。このパッチは、Django の main ブランチと 6.1 リリース候補にも適用されている。

Django の欠陥

最も深刻な脆弱性 CVE-2026-15307 (High) は、Django の GeoDjango spatial lookups に影響を及ぼす。この欠陥を突く攻撃者は、ラスター・データを表す文字列および辞書値を GDALRaster へ渡すことが可能になり、インストールされている raster driver とコンフィグに応じて、Django プロセスによるディスクへのファイル書き込みや、外部ネットワーク・リクエストの開始などが生じる可能性がある。

一部の環境では、攻撃者が任意ファイルへの書き込みを悪用し、RCE を達成できる可能性がある。この脆弱性は Django admin changelists を通じてアクセス可能であり、空間フィールドを含む登録済みモデルへの view 権限を持つスタッフ・ユーザーに対して、細工されたルックアップ・パラメーターの指定を許してしまう。

この脆弱性 CVE-2026-15307 を緩和するため、現時点における Django は、有効な GEOSGeometry オブジェクトではない辞書形式の値および文字列が spatial lookups で使用されることをブロックしている。この変更は、lookups 内でシリアライズされた辞書や類似の値に依存するアプリケーションの後方互換性に影響するものである。

Django は、モデル・フィールドへの直接代入には変更がなく、これらの形式を引き続き受け付けると強調しているが、開発者にとって必要なことは、信頼されていない spatial 入力を処理する前に検証を実施することである。同プロジェクトは、この問題の深刻度が高いと評価しており、報告者として Bence Nagy/localhost-detect/kimchunbok_ の名前を挙げている。

Django は、サービス拒否に関する 2 件の脆弱性にも対処している。

2 つ目の脆弱性 CVE-2026-15337 は django.utils.translation.check_for_language() 関数に影響し、多数の一意かつ長い言語コードを処理する際に、過剰なプロセス・メモリを消費する可能性がある。このような値が、任意のユーザーが利用可能な django.views.i18n.set_language() エンドポイントへ向けて POST data を通じて送信される可能性があるほか、リクエスト・サイズ制限とキャッシュ制限により潜在的な影響は限定されていると Django は述べている。

しかし、今回の更新において、500 文字を超える言語コードが cache lookup に入る前に拒否されるようになった。この脆弱性は低深刻度と評価されている。

3 つ目の脆弱性 CVE-2026-15830 は中深刻度と評価されており、GEOSGeometry により処理される深くネストされた GEOMETRYCOLLECTION オブジェクトに関係している。悪意を持って細工された geometry により、GEOS ライブラリでセグメンテーション・フォルトが発生し、アプリケーション・プロセスが中断される可能性がある。

この問題に対処するため、Django は現時点で、Well-Known Text (WKT) 入力に対しては 198 個のネストされたジオメトリー・コレクションを、Well-Known Binary (WKB) 入力に対しては合計 198 個のコレクションを上限とする制限を強制している。

管理者に求められるのは、新しい max_geom_collections 引数を使用して、このしきい値を調整することだ。GeoJSON は、脆弱な GEOS の処理経路ではなく GDAL 経由で解析されるため、この問題の影響を受けない。

4 つ目の脆弱性 CVE-2026-15920 は、Django admin views における中深刻度の格納型 XSS に関連する。以前は、URLField の値が changelists と read-only fields でクリック可能なリンクとして描画されていたが、そのスキームが安全であることは確認されていなかった。

すでに Django は、URLValidator を使用した検証チェックを実装しており、無効な URL をプレーン・テキストとして表示するようになっている。Django 6.0/5.2 を使用している組織にとって必要なことは、バージョン 6.0.8/5.2.17 へと速やかにアップグレードした上で、管理アクセス/GIS ルックアップの使用/公開状態にある管理インターフェースを確認することである。