Play Frameworkセキュリティアドバイザリ

CSRFバイパス

日付

2016年3月4日

説明

PlayのCSRFサポートに脆弱性が発見されました。

ChromeのBeacon拡張機能は、プリフライトも行われず、フォームでもないクロスオリジンのPOSTリクエストを許可します。これにより、PlayのCSRFフィルタで、のみフォームPOSTリクエストがCSRF攻撃の影響を受けると想定していたことが無効になります。

影響

被害者のブラウザがChromeの場合、PlayのCSRFチェックをバイパスできる可能性があります。

影響を受けるバージョン

回避策

application.confに次の設定を追加します。

play.filters.csrf.contentType {
  blackList = []
  whiteList = ["none"]
}

たとえば、これにより、すべてのPOST application/jsonリクエストにCSRFチェックが必要になります。

修正

Play 2.5.0にアップグレードしてください。Play 2.5がより優れたCSRF保護を提供するためにどのように修正されたか、アップグレードに必要な事項の詳細はこちらを参照してください。

謝辞

この脆弱性を発見した功績は、AtlassianのDavid Black氏にあります。