掲載記事 165本きょう +22026年11月9日(月)運営:株式会社Rabbitly

  1. 新着npm部品bee-jsに不正な版、入れると遠隔操作のおそれ
  2. 新着PyPIに悪性パッケージ39件、入れるだけで動く手口も
  3. 新着NASをインターネットに出さない 確かめる3つの設定
  4. 新着パスキーの始め方 まず管理者のアカウントから
  5. 新着今週のセキュリティまとめ 11月1日〜7日
  6. 新着政府がサイバー緊急対策パッケージ決定 お助け隊に復旧支援を追加
  7. 新着退職者のアカウント、片づけ漏れを防ぐ5つの手順
  8. 新着OpenSSHの欠陥に攻撃、囮サーバーでroot取得と報道
  1. トップ
  2. 脆弱性情報
  3. Djangoに6件の修正、地理情報の機能から外へ通信させられるおそれ
脆弱性情報

Djangoに6件の修正、地理情報の機能から外へ通信させられるおそれ

サイバーセキュリティ情報センター 編集部

画像はイメージです。記事に出てくる組織や現場とは関係ありません。

Django が 6.1.3、6.0.10、5.2.19 を公開し、6件の欠陥を直しました。地理情報の機能で外部へ通信させられたりファイルを読まれたりするおそれがあるほか、アップロードやキャッシュ、管理画面の欠陥も含まれます。

脆弱性の概要

注意CVSS6.9
対象
Django
悪用
確認されていない
影響
外部への通信やファイルの読み取りをさせられる
修正版
修正版あり
公表元
Django / NVD
影響を受ける製品
製品対象のバージョン修正版
Django 6.1系6.1.3 より前6.1.3
Django 6.0系6.0.10 より前6.0.10
Django 5.2系5.2.19 より前(6件のうち5件)5.2.19

やること

Django は Python で Web システムを作るためのフレームワークです。Django の開発チームは11月3日に 6.1.3、6.0.10、5.2.19 を公開し、6件の欠陥を直しました。Django で動くシステムがある場合は、次の順で進めてください。

  • 6.1系は 6.1.3、6.0系は 6.0.10、5.2系は 5.2.19 に上げてください。発表はすべての利用者にできるだけ早く上げるよう勧めています
  • 地理情報の機能(django.contrib.gis、GeoDjango)を使っている場合は、サーバーに入っている GDAL のバージョンも確かめてください。外部への通信を防ぐ修正の一部は、GDAL 3.9 以降でないと働きません
  • 発表の対象はサポート中の 6.1、6.0、5.2 の各系統と開発中の main です。それより前の系統は NVD の説明で評価していないとされ、当てはまる可能性があります

何が危ないのか

Django のセキュリティの方針で深刻度を分けると、6件のうち1件が moderate(中程度)、5件が low(低)です。NVD に登録された CVSS v4 の値は、4件が 6.9、残りの2件が 2.3 と 2.1 です。

いちばん深刻とされたのは CVE-2026-111362(moderate、CVSS 6.9)です。地図の形を表す GeoJSON という形式は、古い仕様では座標系(CRS)を URL で指定できました。地理情報の処理に使う GDAL という部品は、今もこの URL を読みに行きます。利用者が送った GeoJSON から形を作る場面では、検証、保存、検索のどこからでも、攻撃者が仕込んだ URL へ Django のプロセスの権限で通信させたり、ファイルを読ませたりできました。このように、サーバーに外部や内部への通信をさせる攻撃をサーバーサイドリクエストフォージェリー(SSRF)と呼びます。修正後は空間の項目に対する検索、フォームの GeometryField、GEOSGeometry が外部の座標系の参照を断ります。信頼できるデータを読み込むための DataSource と LayerMapping は、これまでどおり受け付けます。

CVE-2026-114582(low、CVSS 6.9)も同じ地理情報の機能の SSRF です。SpatialReference に渡した文字列を GDAL がそのまま解釈し、URL を読みに行ったりファイルを読んだりしていました。GEOSGeometry.transform() や GDALRaster の srid の設定など、ほかのいくつかの処理も同じです。外への通信を見ることでローカルのファイルの中身を知る攻撃も組み立てられた、と発表は書いています。

ほかの4件は、ファイルのアップロード、ログ、キャッシュ、管理画面の欠陥です。

  • CVE-2026-108147(low、CVSS 6.9):Content-Transfer-Encoding: base64 を付けたファイルのアップロードを、FILE_UPLOAD_MAX_MEMORY_SIZE の上限にかかわらず全部メモリーにため込み、メモリーを使い果たすおそれがあります。NVD の説明では、6.0系は 6.0.4 以降、5.2系は 5.2.13 以降が対象です
  • CVE-2026-111211(low、CVSS 6.9):地理情報のフォームの GeometryField が、受け付けなかった値を改行などの制御文字ごとログに書いていました。ログの行を偽造したり、見た目を変えたりされるおそれがあります
  • CVE-2026-113593(low、CVSS 2.3):UpdateCacheMiddleware と cache_page() が、Vary ヘッダーに挙げたヘッダーを送らなかった要求と、空の値で送った要求に同じキャッシュの鍵を使っていました。片方向けに保存した応答がもう片方に返り、私的な情報が見えるおそれがあります
  • CVE-2026-113733(low、CVSS 2.1):管理画面で、閲覧だけを許された管理者に、ユーザーのモデルのパスワードのハッシュ値が全部表示されていました。AUTH_USER_MODEL 以外のユーザーのモデルか、パスワードの項目を親のモデルから受け継いだ AUTH_USER_MODEL を使っている場合です。5.2.19 の修正にこの件は入っておらず、NVD でも対象は 6.1 と 6.0 です

発表と NVD の説明に、悪用されたという記載はありません。

更新で変わる動き

修正版に上げると、2つの点で動きが変わります。

  • キャッシュの鍵が、ヘッダーが無い場合と空の場合を分けるようになります。Vary に挙げたヘッダーを送らなかった要求向けに保存した応答は使われなくなり、次の要求で保存し直されます
  • GDAL 3.9 以降では、SpatialReference がファイルのパスや URL を受け付けなくなります。DICT: で始まる指定(ESRI:: 付きを含む)は、GDAL のバージョンにかかわらず断られます

GDAL が 3.9 より前の場合は、修正だけでは守りきれないと発表に書かれています。発表は、信頼できない入力には EPSG の一覧から直接引く整数の SRID を使い、GDAL が古いまま文字列を使うなら許可の一覧と照らすよう勧めています。新しい検査 gis.W001 は、GDAL が 3.9 より前のときに警告を出します。

中小企業が確かめること

委託して作ったシステムが Django で動いている場合は、Django のバージョンと、地理情報の機能や cache_page() を使っているかを委託先に聞いてください。店舗の地図や配達の範囲のように、利用者が地図の形を送れる画面があるシステムでは、地理情報の欠陥が当てはまる可能性があります。管理画面で閲覧だけの権限を渡している管理者がいる場合は、ユーザーのモデルの作りも確かめてもらってください。

自社で確かめること

  1. Django のバージョンを調べる`python -m django --version` か `pip show django` でバージョンを調べ、6.1.3、6.0.10、5.2.19 より前でないかを確かめてください。
  2. 地理情報の機能を使っているか聞く`django.contrib.gis`(GeoDjango)を使い、利用者が送った地図の形や座標系の文字列を受け付けていないかを開発の担当者に聞いてください。
  3. GDAL のバージョンを見る地理情報の機能を使っている場合は、サーバーの GDAL が 3.9 以降かを確かめてください。3.9 より前では修正だけでは防ぎきれません。
自社で確かめるのが難しい場合はCyberScope のセキュリティ診断(3万円から)

出典

コメント 0

まだコメントはありません。

関連記事