CVE-2020-5398:Spring MVC 或 Spring WebFlux 應用程式透過來自請求輸入的“Content-Disposition”頭導致的 RFD 攻擊

| 2020 年 1 月 16 日 | CVE-2020-5398

描述

在 Spring Framework 的 5.2.x 版本低於 5.2.3,5.1.x 版本低於 5.1.13,以及 5.0.x 版本低於 5.0.16 中,當應用程式在響應中設定“Content-Disposition”頭,並且檔名屬性來源於使用者提供輸入時,應用程式容易受到反射檔案下載 (RFD) 攻擊。

具體來說,當以下所有情況都為真時,應用程式是易受攻擊的

  • 此頭透過 org.springframework.http.ContentDisposition 進行準備。
  • 檔名透過以下方式之一設定
    • ContentDisposition.Builder#filename(String),或
    • ContentDisposition.Builder#filename(String, US_ASCII)
  • 檔名的值來源於使用者提供輸入。
  • 使用者提供輸入未被應用程式清理。
  • 下載的響應內容被攻擊者注入惡意命令(詳細資訊請參閱 RFD 論文參考)。

在以下任何一種情況為真時,應用程式不易受攻擊:

  • 應用程式未設定“Content-Disposition”響應標頭。
  • 此頭未透過 org.springframework.http.ContentDisposition 進行準備。
  • 檔名透過以下方式之一設定
    • ContentDisposition.Builder#filename(String, UTF_8),或
    • ContentDisposition.Builder#filename(String, ISO_8859_1)
  • 檔名不來源於使用者提供輸入。
  • 檔名來源於使用者提供輸入但已由應用程式清理。

受影響的 Spring 產品和版本

  • Spring Framework
    • 5.2.0 至 5.2.2
    • 5.1.0 至 5.1.12
    • 5.0.0 至 5.0.15

緩解措施

受影響版本的使用者應採取以下緩解措施。5.2.x 使用者應升級到 5.2.3。5.1.x 使用者應升級到 5.1.13。5.0.x 使用者應升級到 5.0.16。無需其他步驟。已修復此問題的版本包括

  • Spring Framework
    • 5.2.3
    • 5.1.13
    • 5.0.16

致謝

此問題由 EPAM 的 Roman Shalymov 發現並負責任地報告。

參考資料

歷史

  • 2020-01-16:首次釋出漏洞報告。

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有