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。