Debian DLA-65-1:python-django セキュリティ更新

medium Nessus プラグイン ID 82210

概要

リモートの Debian ホストにセキュリティ更新がありません。

説明

この更新により、reverse() による外部 URL 生成、
ファイルアップロードに関するサービス拒否、リモートユーザーミドルウェアの潜在的なセッションハイジャックの問題、および管理インターフェイスのデータ漏洩に関連する問題を対処します。

http://www.freexian.com/services/debian-lts.html

CVE-2014-0480

Django には、ヘルパー関数である django.core.urlresolvers.reverse が含まれており、主にビュー機能または URL パターン名に対する参照から URL を生成するために使用されます。しかし、2 つのフォワードスラッシュ(//)で始まる入力が存在する場合、reverse() が他のホストに対してスキーム相対 URL を生成することで、reverse() の安全でない使用(一般的な例として、エンドユーザーがリダイレクトのターゲットをコントロールできる状況など)を認識している攻撃者が、自分で選択したサイトへのリンクを作成し、フィッシング攻撃およびその他の攻撃を実行できる可能性があります。

これを修正するために、URL の反転は、2 つのスラッシュ(//)で始まる URL がないことを確認し、2 つ目のスラッシュを URL エンコードされた文字(%2F)に置き換えるようになりました。この方法により、セマンティックは同じままで、URL をスキームではなくドメインに対して相対的にします。

CVE-2014-0481

デフォルト構成では、Django のファイルアップロード処理システムに既存のファイルと同じディスクパスおよび名前を持つファイルが存在する場合、下線および整数を(ディスクに保存されているように)ファイル名の末尾に付け、あらゆる既存ファイルと競合しない名前を生成するまで整数(例えば、_1、_2 など)をインクリメントすることで、新しい固有ファイル名の生成を試みます。

これを知り得た攻撃者が、ファイル名を共有している多くの小さいファイルをアップロードすることで、ファイル名生成のシーケンシャル動作を悪用する可能性があります。Django がその動作の処理において、固有ファイル名を生成する際に絶えず増え続ける os.stat() 呼び出しを生成します。その結果、アップロード数が比較的少ない場合でも、パフォーマンスを著しく低下させる可能性があります。

これを修正するために、Django のファイルアップロードシステムは、ディスク上でのファイル名の競合を回避するためにシーケンシャル整数名を使用しなくなりました。代わりに、短いランダムな英数字文字列が付加され、繰り返し競合する多くのファイル名を確実に生成する機能を削除します。

CVE-2014-0482

Django は、ミドルウェア -- django.contrib.auth.middleware.RemoteUserMiddleware -- および認証バックエンドである django.contrib.auth.backends.RemoteUserBackend を提供します。これらは、認証のために REMOTE_USER ヘッダーを使用します。

ある状況においてこのミドルウェアとバックエンドを使用すると、対応するログアウトおよびログイン動作を伴わない REMOTE_USER ヘッダーの変更が行われた場合、ユーザーが別のユーザーのセッションを受信する可能性があります。

これを修正するために、ミドルウェアは現在、明示的なログアウトをせずに REMOTE_USER への変更が行われる場合、強制的にログアウトさせ、新しい REMOTE_USER を許可する前に再ログインを強制します。

CVE-2014-0483

Django の管理インターフェイスである django.contrib.admin は、関連するオブジェクトがポップアップウィンドウに選択肢として表示する機能を提供します。このメカニズムは、表示する関連モデル、ならびに関係性が実装されるフィールドを指定する URL とクエリ文字列への値の配置に依存しています。このメカニズムは、全体のモデルクラスレベルでの権限チェックを実行します。

しかし、このメカニズムは、指定されたフィールドがモデル間の関係性を実際に示しているかどうかを検証しませんでした。
このため、管理者インターフェイスへのアクセス権、ならびにモデル構成と適切な URL に関する十分な知識を持つユーザーが、アプリケーション開発者がそのような方法での露呈を意図していないフィールドを含む、関係のないフィールドの値を表示するポップアップビューを作成する可能性があります。

これを修正するために、管理者インターフェイスは現在、通常の権限チェックに加えて、指定されたフィールドが管理者に登録されたモデルとの関係性を実際に示しているかを検証し、どちらかの条件が満たされていない場合、例外を上げるようになりました。

注:Tenable Network Security は、前述の記述ブロックを DLA セキュリティアドバイザリから直接抽出しています。Tenable では、できる限り新たな問題を持ち込まないように、自動的に整理して書式設定するようにしています。

ソリューション

影響を受ける python-django および python-django-doc のパッケージをアップグレードしてください。

参考資料

https://lists.debian.org/debian-lts-announce/2014/09/msg00022.html

https://packages.debian.org/source/squeeze-lts/python-django

プラグインの詳細

深刻度: Medium

ID: 82210

ファイル名: debian_DLA-65.nasl

バージョン: 1.10

タイプ: local

エージェント: unix

公開日: 2015/3/26

更新日: 2021/1/11

サポートされているセンサー: Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Nessus

リスク情報

VPR

リスクファクター: Medium

スコア: 6.0

CVSS v2

リスクファクター: Medium

基本値: 6

現状値: 4.4

ベクトル: CVSS2#AV:N/AC:M/Au:S/C:P/I:P/A:P

脆弱性情報

CPE: p-cpe:/a:debian:debian_linux:python-django, p-cpe:/a:debian:debian_linux:python-django-doc, cpe:/o:debian:debian_linux:6.0

必要な KB アイテム: Host/local_checks_enabled, Host/Debian/release, Host/Debian/dpkg-l

エクスプロイトの容易さ: No known exploits are available

パッチ公開日: 2014/9/29

脆弱性公開日: 2014/8/26

参照情報

CVE: CVE-2014-0480, CVE-2014-0481, CVE-2014-0482, CVE-2014-0483

BID: 69423, 69425, 69429, 69430