Spring Security 安全性公告

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” 標頭,且 filename 屬性來自使用者提供的輸入時,該應用程式容易受到反射型檔案下載 (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 社群中所有即將舉行的活動。

查看全部