CVE-2018-15756: 透過 Range 請求進行的拒絕服務攻擊

| 2018年10月16日 | CVE-2018-15756

描述

Spring Framework 的 5.1 版本、5.0.x 版本(5.0.10 之前)、4.3.x 版本(4.3.20 之前)以及 4.2.x 分支下未獲得支援的舊版本,在透過 ResourceHttpRequestHandler 提供靜態資源時,或者在 5.0 版本開始,當註解控制器返回 org.springframework.core.io.Resource 時,都支援 Range 請求。惡意使用者(或攻擊者)可以透過新增具有大量 Range、範圍過大重疊或兩者兼有的 Range 頭,進行拒絕服務攻擊。

此漏洞會影響依賴 spring-webmvc 或 spring-webflux 的應用程式。此類應用程式還必須註冊用於提供靜態資源(例如 JS、CSS、圖片等),或有一個返回 org.springframework.core.io.Resource 的註解控制器。

依賴 spring-boot-starter-web 或 spring-boot-starter-webflux 的 Spring Boot 應用程式開箱即用,即可提供靜態資源,因此易受攻擊。

受影響的 Spring 產品和版本

  • Spring Framework 5.1
  • Spring Framework 5.0.0 到 5.0.9
  • Spring Framework 4.3 到 4.3.19
  • 追溯到 4.2 的未獲得支援的舊版本也受影響

緩解措施

受影響版本的使用者應採取以下緩解措施

  • 5.1 使用者應升級到 5.1.1
  • 5.0.x 使用者應升級到 5.0.10
  • 4.3.x 使用者應升級到 4.3.20
  • 4.2.x 使用者應升級到受支援的分支。

無需進一步的緩解措施。

評估影響時請注意以下幾點

  • Range 請求的支援是在 4.2 版本中引入的。因此,4.2 版本之前的版本不受此問題影響。
  • 從註解控制器返回 org.springfamework.core.io.Resource 的支援是在 5.0 版本中引入的。因此,5.0 版本之前的版本只能透過註冊提供靜態資源的方式受到影響。

致謝

此問題由 Aruba Threat Labs 的 Nicholas Starke 發現並負責任地報告。

歷史

2018-10-16:釋出初始漏洞報告。

領先一步

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

瞭解更多

獲得支援

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

瞭解更多

即將舉行的活動

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

檢視所有