5月14日、Django開発チームが Django 1.4.13, 1.5.8, 1.6.5, 1.7 beta 4 をセキュリティリリースの一環としてリリースしました。これらは PyPI と ダウンロードページ から手に入ります

このリリースはキャッシュポイゾニングを引き起こす問題と、セーフリダイレクト時の正しくないバリデーションチェックの問題を対象にしています。これらの問題は多くのDjango利用者に影響があります。アップグレードが強く推奨されます。

詳細は以下を読んでください。

キャッシュがプライベートデータを保存し、配信される問題 (CVE-2014-1418)

特定の条件下において、 Django があるセッションに関するプライベートデータを保存し、そのデータを別セッションのリクエストに配信するおそれがあります。この問題は情報漏えいと、キャッシュポイゾニングを引き起こします。

Django のセッションを使っている場合、Djangoは Vary: Cookie ヘッダーを設定し、別セッション由来のデータをリクエストに配信しないようにしています。しかし、古いバージョンの Internet Explorer (Internet Explorer 6 か 7 が、WindowsXP か Windows Server 2003 上で動作している場合) では、 多くの content types と併せてこの Vary ヘッダーも扱えません。なので、 Django はリクエストが Internet Explorer 由来の場合にこのヘッダーを削除しようとしていました。

この問題を修正するため、この古い Internet Explorer 向けの特殊な動作は削除されました。Vary ヘッダーはレスポンスから消されることはもうありません。追加として、 Content-Disposition ヘッダー付きの Internet Explorer 由来のリクエストへの Cache-Control ヘッダーへの変更も、同様の問題を含むとして削除されました。

特殊なURLがユーザーから指定された場合の、不正確なバリデーション (CVE-2014-3730)

リダイレクト用のバリデーションが、いくつかのブラウザで許可される特殊なURLに対して正確に動作しませんでした。 これは安全でない、予期せぬURLへのリダイレクトを許可してしまいます。

Django はいくつかのケースにおいてユーザー入力に依存した「成功時の」リダイレクトを行います (例えば django.contrib.auth.views.login, django.contrib.comments や i18n) これらリダイレクトへのセキュリティチェック (django.util.http.is_safe_url()) は、 http://\djangoproject.com のような特殊なURLに対して正確なバリデートをしませんでした。これはいくつかのURLのパースが寛大なブラウザで許可されていたものです。

この問題を修正するために、 is_safe_url() は、これらの特殊なURLに対しても正常なバリデートを行うように修正されました。

Currently unrated
  • Share

Comments

There are currently no comments

New Comment

* Please fill all required form field, thanks!