17 日に Django のセキュリティリリースとして 1.4.2 、 1.3.4 がリリースされました。

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

Host ヘッダポイゾニング

Django の一部は、エンドユーザの書いたアプリケーションに依存しており、ドメイン名を含むフル URL を使います。 ここでのURLは HTTP Host ヘッダから生成されます。 Web サーバが正しく設定されていないと、これに対する攻撃を Django が制御できません。 Django のドキュメントでは何度かユーザに対して、 そのような設定をするようにノートとしてアドバイス してきました。

最近私達に報告されたように、 Django 独自の組み込み Host ヘッダの解析 (parsing) は未だ脆弱です。 Django1.3 と 1.4 でのホストヘッダの解析 -- 具体的には django.http.HttpRequest.get_host() -- はこのヘッダ内で のユーザ名/パスワード情報の扱いを間違えていました。例えば "validsite.com" で実行された以下のホストヘッダは Django に正当と判断されました:

Host: validsite.com:random@evilsite.com

これを使って、攻撃者はDjangoの一部 -- とくにパスワードをリセットするメカニズム -- を使って任意の URL を生成してユーザに表示させました。

改善策として、 HttpRequest.get_host() が修正されました。潜在的に危険なコンテンツを含む ホストヘッダ (ユーザ名/パスワードのペアなど) は、今では django.core.exceptions.SuspiciousOperation 例外を送出します。

Currently unrated
  • Share

Comments

There are currently no comments

New Comment

* Please fill all required form field, thanks!