Spring Security 安全性公告

CVE-2015-5211 Spring Framework 中的 RFD 攻擊

| 2015 年 10 月 15 日 | CVE-2015-5211

描述

在某些情況下,Spring Framework 容易受到反射檔案下載 (RFD) 攻擊。 此攻擊涉及惡意使用者製作一個帶有批次指令碼副檔名的 URL,導致回應被下載而不是呈現,並且還包括回應中反映的一些輸入。

有關詳細資訊和具體範例,請參閱 Trustwave 非常有用的 RFD 論文

受影響的 Spring 產品和版本

  • Spring Framework 3.2.0 至 3.2.14
  • Spring Framework 4.0.0 至 4.1.7
  • Spring Framework 4.2.0 至 4.2.1
  • 其他不受支援的版本也會受到影響

緩解措施

受影響的 Spring Framework 版本的使用者應升級如下:

  • 對於 3.2.x,升級到 3.2.15+。
  • 對於 4.0.x 和 4.1.x,升級到 4.1.8+。
  • 對於 4.2.x,升級到 4.2.2+。

在上述版本中,Spring MVC 會在使用 HttpMessageConverter 寫入之前檢查 URL 是否包含檔案副檔名,如果副檔名未知,則會新增 "Content-Disposition" 回應標頭,以建議下載檔案名稱 "f.txt"。 預設情況下,「已知」副檔名清單包括與內建 HttpMessageConverter 實作相關聯的副檔名,以及為了內容協商目的而明確註冊的任何其他副檔名。 對於 4.x,此修復還包括 URL 檢查 SockJS URL 以及驗證所有支援 JSONP 的區域中的 JSONP 回呼參數。

僅僅升級到上述版本將保護應用程式免受 RFD 攻擊。 也可以採取一些進一步的步驟:

  • 編碼而不是逸出 JSON 回應。 這也是 OWASP XSS 建議。 如需如何使用 Spring 執行此操作的範例,請參閱 https://github.com/rwinch/spring-jackson-owasp
  • 設定後綴模式比對以關閉或僅限於明確註冊的後綴。
  • 設定內容協商,並將屬性 "useJaf" 和 "ignoreUknownPathExtension" 設定為 false,這將導致具有未知副檔名的 URL 產生 406 回應。 但是請注意,如果 URL 本身預期在結尾處會有一個點,則這可能不是一個選項。
  • 將 'X-Content-Type-Options: nosniff' 標頭新增至回應。 Spring Security 4 預設會執行此操作。

鳴謝

RFD 攻擊由 Trustwave 在一份論文中進行了描述。 Spring Framework 中的問題由 HPE Security Research 的 Alvaro Muñoz 負責地報告給了 Pivotal。 特別感謝 NTT DATA Corporation 的 Toshiaki Maki 和 Tomoyuki Ikeya 協助驗證解決方案並確定利用該漏洞的其他方法。

參考資料

歷史記錄

2015-Oct-15:發布初始漏洞報告。

搶先一步

VMware 提供訓練和認證,以加速您的進度。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

了解更多

即將到來的活動

查看 Spring 社群中所有即將到來的活動。

檢視全部