CSRFバイパス
日付
2016年3月4日
説明
PlayのCSRFサポートに脆弱性が発見されました。
ChromeのBeacon拡張機能は、プリフライトも行われず、フォームでもないクロスオリジンのPOSTリクエストを許可します。これにより、PlayのCSRFフィルタで、のみフォームPOSTリクエストがCSRF攻撃の影響を受けると想定していたことが無効になります。
影響
被害者のブラウザがChromeの場合、PlayのCSRFチェックをバイパスできる可能性があります。
影響を受けるバージョン
- Play 2.2.0 - 2.4.6
回避策
application.conf
に次の設定を追加します。
play.filters.csrf.contentType {
blackList = []
whiteList = ["none"]
}
たとえば、これにより、すべてのPOST
application/json
リクエストにCSRFチェックが必要になります。
修正
Play 2.5.0にアップグレードしてください。Play 2.5がより優れたCSRF保護を提供するためにどのように修正されたか、アップグレードに必要な事項の詳細はこちらを参照してください。
謝辞
この脆弱性を発見した功績は、AtlassianのDavid Black氏にあります。