セキュリティ対策リリース

posted on 2010/09/10 at AM 10:38 by makoto

この文書は 公式の発表 を露木誠(mtsuyuki あっと gmail.com)が訳したものです。


Djangoチームはセキュリティの問題を取り除いた1.2.2をリリースしました。この問題は独立した2つのグループから別々に明らかにされました。Django1.2のユーザは早急にアップグレードしてください。

問題の内容

1.2のリリースでDjangoのCoreフレームワークにCSRF対策を含めました。これは標準で有効になっています。以前のリリースでは別のかつ、オプションで有効にするものを提供していました。

Django1.2のCSRF対策システムはランダムなトークンを生成し、フォーム出力にhiddenフィールドとして埋め込んでいます。同じ値がクッキーにもセットされサブミット時にクッキーとフォームの値が比較されます。

CSRF対策のトークンをフォームに埋め込むテンプレートタグ -- {% csrf_token %} -- はクッキーの値を信用し、そのまま出力します。そのためCSRF対策クッキーを不正に変更できる攻撃者は任意のコンテンツをエスケープされる事無くhtmlのformに挿入でき、XSS攻撃を可能にします。

この問題は最初、DjangoのTracに公開チケットとして報告され、そのチケットの優先順位付けフローの間に、MozillaのJeff Baloghから独立して方向腐れました。

影響を受けるバージョン

  • Djangoの開発trunk
  • Django 1.2

現在のCSRF対策システムは1.2で新しくなったため、過去のリリースに関しては影響を受けません。

解決方法

trunkと1.2のリリースブランチには、クッキーの値を信頼せずにエスケープをするパッチを適用しました。今後のDjangoリリースでは、このような問題が発生することをさけるため、専用のクッキーを使う方法をさけるかもしれません。

パッチは以下で入手可能です。

以下がリリースされています。

セキュリティに関して

セキュリティの問題になる可能性があるモノについては security@djangoproject.com へ送ってもらえるよういつもお願いしています。DjangoのTracやdevelopersメーリングリストではなく、です。

この種の問題は時間的制約のために、本来のDjangoのディストリビュータへの事前通知を行えず、通知がリリースの直前になってしまいました。もし、Djangoのサードパーティーディストリビュータ (訳注:恐らくOS等のパッケージ管理者等と推測される) だと考えられるにもかかわらず、通知のメールがDjangoのリリースマネージャから届いていない場合には、james@b-list.orgへ連絡を取ってください。

Tag | news |

permalink