12月10日に Django のセキュリティリリースとして 1.5 beta 2 、 1.4.3 、 1.3.5 がリリースされました。

変更点を下記します。この文章は 本家ブログの記事 を一部抜粋し翻訳したものです。訳の間違いなどあれば一報ください。

セキュリティリリース

Django 開発チームは Django 1.3.5 、 Django 1.4.3 、 Django 1.5 beta 2 をセキュリティプロセスの一環としてリリースしました。

早急な Django のアップグレードが推奨されます。

このセキュリティリリースは前回のセキュリティリリースとは少し違います。ここで広報された両方のリリースは、 Django の重要なセキュリティアップデートについて扱っています。 あるケースでは継続的に問題の報告を受けています。そして他方では次のステップをとっており、複数のソースコードから別個に発見された潜在的な問題に対し て、 Django のコードを強固にしています。

ホストヘッダーポイゾニング

いくつかの以前の Django のセキュリティリリースでは HTTP ホストヘッダポイゾニング問題に焦点をあてていました。 Django は任意の場所(おそらくは悪意あるドメイン)を指すURLの生成を引き起こしていました。

さらに、受信した入力と、以前のリリースのあとに続いた問題の報告を受けて、追加の手順としてHOSTヘッダの検証を強化しています。ここで HTTP がサポートしている全機能に対応するのでなく、 Django のホストヘッダの検証は、小さくてもより一般的なサブセットをサポートします:

  • ホストネームは[A-Za-z0-9]、加えてハイフン('-')かドット('.')で構成されます
  • IPアドレス -- IPv4 と IPv6 の両方 -- が認められます。
  • ポートを指定する場合は数値です。

これからから逸脱するのもは除外され、 django.core.exceptions.SuspiciousOperation が送出されます。

リダイレクトポイゾニング

前の問題のフォローアップ: 今年の7月に我々は Django の HTTP リダイレクトクラスに変更を加えました。 URL スキームに追加の検証を実施をするようにしました(以来、 Django 自体が提供するアプリケーションと、多くのサードパーティー製アプリケーションの両方で、ユーザー指定のリダイレクト先を受け入れられるようになりまし た。

それによって2つの独立したコードの検査には、さらなる潜在的な問題が現れました。ホストヘッダーの問題と同様に、報告された問題に応じてより綿密 な検証するよう措置を講じています(主にサードパーティー製アプリケーションについてですが、Django自体についても含まれるでしょう)。これは2つ のパートからなります:

  • 新しいユーティリティ関数 django.utils.http.is_safe_url が追加されました: この関数は URL とホスト名を受け取り、そのURLが相対パスか、絶対パスの場合は渡されたホスト名が一致するかどうかをチェックします。この関数は、ユーザ提供のリダイ レクトターゲットが受け入れられる際に、常に使われることを意図しています。任意のサードパーティー製サイトにリダイレクトできないことを保証します。
  • すべての Django の組み込みビュー -- 主に認証システムの -- ユーザ提供のリダイレクトターゲットを受け入れるものは、与えられたURLに対して is_safe_url 検証を使っています。
Currently unrated
  • Share

Comments

There are currently no comments

New Comment

* Please fill all required form field, thanks!