CVE-2019-3773: XML 外部實體注入 (XXE)

危急 | 2019年1月14日 | CVE-2019-3773

描述

Spring Web Services 2.4.3、3.0.4 版本以及所有這三個專案的不受支援的舊版本,在接收來自不受信任來源的 XML 資料時,容易受到 XML 外部實體注入 (XXE) 的攻擊。

受影響的 Spring 產品和版本

  • Spring Web Services 2.4.3、3.0.4 版本及更早版本

緩解措施

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

  • 將 spring-ws、spring-xml jar 升級到 2.4.4、3.0.6 或更高版本
  • Spring Web Services 中出現此漏洞的元件現在預設停用參考速查表 [1] 中建議的功能,但如果 XML 資料來自可信來源,則允許使用者配置元件以啟用該功能。

參考資料

歷史記錄

2019-01-14: 初次漏洞報告發布。

CVE-2019-3774: XML 外部實體注入 (XXE)

危急 | 2019年1月14日 | CVE-2019-3774

描述

Spring Batch 3.0.9、4.0.1、4.1.0 版本以及不受支援的舊版本,在接收來自不受信任來源的 XML 資料時,容易受到 XML 外部實體注入 (XXE) 的攻擊。

受影響的 Spring 產品和版本

  • Spring Batch 3.0.9、4.0.1、4.1.0 版本及更早版本

緩解措施

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

  • 將 spring-batch jar 升級到 3.0.10, 4.0.2, 4.1.1 或更高版本
  • Spring Batch 中出現此漏洞的元件現在預設停用參考速查表 [1] 中建議的功能,但如果 XML 資料來自可信來源,則允許使用者配置元件以啟用該功能。

參考資料

歷史記錄

2019-01-14: 初次漏洞報告發布。

CVE-2019-3772: XML 外部實體注入 (XXE)

危急 | 2019年1月14日 | CVE-2019-3772

描述

Spring Integration (spring-integration-xml 和 spring-integration-ws 模組) 的 4.3.18、5.0.10、5.1.1 版本以及不受支援的舊版本,在接收來自不受信任來源的 XML 資料時,容易受到 XML 外部實體注入 (XXE) 的攻擊。

受影響的 Spring 產品和版本

  • Spring Integration 5.1.1、5.0.10、4.3.18 版本及更早版本

緩解措施

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

  • 將 spring-integration-ws, spring-integration-xml 升級到 4.3.19, 5.0.11, 5.1.2 或更高版本。
  • Spring Integration 中出現此漏洞的元件現在預設停用參考速查表 [1] 中建議的功能,但如果 XML 資料來自可信來源,則允許使用者配置元件以啟用該功能。

參考資料

歷史記錄

2019-01-14: 初次漏洞報告發布。

CVE-2018-15801: 使用 spring-security 進行 JWT 頒發者驗證期間的授權繞過

低危 | 2018年12月18日 | CVE-2018-15801

描述

Spring Security 5.1.x 5.1.2 版本之前包含一個 JWT 頒發者驗證期間的授權繞過漏洞。要受到影響,必須使用誠實頒發者和惡意使用者的相同私鑰來簽署 JWT。在這種情況下,惡意使用者可以偽造帶有惡意頒發者 URL 的簽名 JWT,該 JWT 可能對誠實頒發者有效。

受影響的 Spring 產品和版本

  • Spring Framework 5.1 至 5.1.1

緩解措施

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

  • 5.1.x 使用者應升級到 5.1.2

無需其他緩解措施。

致謝

此問題由 Björn Bilger 發現並負責任地報告。

參考資料

CVE-2018-15756: 透過 Range 請求進行的 DoS 攻擊

低危 | 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 頭部新增大量範圍、重疊的寬範圍或兩者兼有,以進行拒絕服務攻擊。

此漏洞影響依賴於 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: 初次漏洞報告發布。

CVE-2018-15758: spring-security-oauth2 中的許可權提升

危急 | 2018年10月16日 | CVE-2018-15758

描述

Spring Security OAuth 的 2.3 2.3.4 版本之前、2.2 2.2.3 版本之前、2.1 2.1.3 版本之前以及 2.0 2.0.16 版本之前,以及不受支援的舊版本,在某些條件下可能容易受到許可權提升的影響。惡意使用者或攻擊者可以精心構造對批准端點的請求,以修改先前儲存的授權請求,並在後續批准時導致許可權提升。如果應用程式配置為使用將 AuthorizationRequest 宣告為控制器方法引數的自定義批准端點,則可能會發生這種情況。

此漏洞影響滿足以下所有要求的應用程式

  • 扮演授權伺服器的角色(例如 @EnableAuthorizationServer
  • 使用將 AuthorizationRequest 宣告為控制器方法引數的自定義批准端點

此漏洞不影響以下應用程式

  • 扮演授權伺服器的角色並使用預設批准端點
  • 僅扮演資源伺服器的角色(例如 @EnableResourceServer
  • 僅扮演客戶端的角色(例如 @EnableOAuthClient

受影響的 Spring 產品和版本

  • Spring Security OAuth 2.3 至 2.3.3
  • Spring Security OAuth 2.2 至 2.2.2
  • Spring Security OAuth 2.1 至 2.1.2
  • Spring Security OAuth 2.0 至 2.0.15
  • 不受支援的舊版本也受到影響

緩解措施

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

  • 2.3.x 使用者應升級到 2.3.4
  • 2.2.x 使用者應升級到 2.2.3
  • 2.1.x 使用者應升級到 2.1.3
  • 2.0.x 使用者應升級到 2.0.16
  • 舊版本應升級到受支援的分支

無需其他緩解措施。

致謝

此問題由 Micro Focus 的 Alvaro Muñoz (@pwntester) 發現並負責任地報告。

參考資料

CVE-2018-11087: RabbitMQ (Spring-AMQP) 主機名驗證

危急 | 2018年9月11日 | CVE-2018-11087

描述

spring-amqp 的 1.x 1.7.10 版本之前、2.x 2.0.6 版本之前存在中間人漏洞。

Spring RabbitMQ Java 客戶端不執行主機名驗證。

這意味著只要其他主機的 SSL 證書受到信任,就會被盲目接受。

要利用此漏洞,攻擊者必須在使用 Spring RabbitMQ Java 客戶端的 Java 應用程式與其連線的 RabbitMQ 伺服器之間執行中間人 (MITM) 攻擊。

TLS 通常可以保護使用者和系統免受 MITM 攻擊,但如果客戶端接受來自其他受信任主機的證書,則無法實現保護。

Spring AMQP 使用 RabbitMQ 的 amqp-client Java 庫與 RabbitMQ 進行通訊。

它使用 RabbitConnectionFactoryBean 建立/配置連線工廠。

受影響的 Spring 產品和版本

  • Spring-AMQP 1.7.10 和 2.0.6 版本之前
  • RabbitMQ amqp-client 4.8.0 和 5.4.0 版本之前

緩解措施

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

  • 升級到 1.7.10.RELEASE 或 2.0.6.RELEASE,並將 enableHostnameValidation 屬性設定為 true。分別將傳遞依賴的 amqp-client 版本覆蓋到至少 4.8.0 和 5.4.0
  • 即將釋出的 2.1.0.RELEASE 版本將預設把該屬性設定為 true。
  • 如果您直接使用 amqp-client 庫建立連線工廠,請參考其 javadoc 中關於 enableHostnameValidation() 方法的說明。

致謝

此問題由瑞士 Alphabot Security 的 Peter Stöckli 發現並負責任地報告。

歷史記錄

2018-09-11: 初次漏洞報告發布。

CVE-2018-11039: 使用 Spring Framework 進行跨站追蹤 (XST)

中危 | 2018年6月14日 | CVE-2018-11039

描述

Spring Framework(5.0.x 5.0.7 版本之前、4.3.x 4.3.18 版本之前以及不受支援的舊版本)允許 Web 應用程式使用 Spring MVC 中的 HiddenHttpMethodFilter 將 HTTP 請求方法更改為任何 HTTP 方法(包括 TRACE)。如果應用程式存在預先存在的 XSS 漏洞,則惡意使用者(或攻擊者)可以使用此過濾器升級到 XST(跨站追蹤)攻擊。

受影響的 Spring 產品和版本

  • Spring Framework 5.0 至 5.0.6
  • Spring Framework 4.3 至 4.3.17
  • 不受支援的舊版本也受到影響

緩解措施

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

  • 5.0.x 使用者應升級到 5.0.7
  • 4.3.x 使用者應升級到 4.3.18
  • 舊版本應升級到受支援的分支

無需其他緩解措施。

此攻擊適用於滿足以下條件的應用程式

  • 使用 HiddenHttpMethodFilter(在 Spring Boot 中預設啟用)
  • 允許應用程式伺服器處理 HTTP TRACE 請求

此攻擊不能直接利用,因為攻擊者必須透過 HTTP POST 發起跨域請求,而這被同源策略禁止。因此,為了能夠升級到 XST 攻擊,Web 應用程式本身必須存在預先存在的 XSS(跨站指令碼)漏洞。

致謝

此問題由 Ocado Technology 的 Mariusz Łuciów 發現並報告。

歷史記錄

2018-06-14: 初次漏洞報告發布。

CVE-2018-11040: MappingJackson2JsonView 中預設啟用 JSONP

中危 | 2018年6月14日 | CVE-2018-11040

描述

Spring Framework 的 5.0.x 5.0.7 版本之前、4.3.x 4.3.18 版本之前以及不受支援的舊版本,允許 Web 應用程式透過 REST 控制器的 AbstractJsonpResponseBodyAdvice 和瀏覽器請求的 MappingJackson2JsonView 啟用 JSONP(填充式 JSON)跨域請求。Spring Framework 和 Spring Boot 預設都沒有啟用這兩項功能。但是,當應用程式中配置了 MappingJackson2JsonView 時,透過“jsonp”和“callback”這兩個 JSONP 引數,JSONP 支援會自動就緒,從而啟用跨域請求。

允許來自不受信任來源的跨域請求可能會將使用者資訊暴露給第三方瀏覽器指令碼。

此漏洞適用於滿足以下條件的應用程式

  • 明確配置 MappingJackson2JsonView。
  • 並且未將 MappingJackson2JsonView 的 jsonpParameterNames 屬性設定為空集。
  • 並且透過可以利用 JSONP 渲染內容的端點暴露敏感使用者資訊。

受影響的 Spring 產品和版本

  • Spring Framework 5.0 至 5.0.6
  • Spring Framework 4.1 至 4.3.17

緩解措施

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

  • 5.0.x 使用者應升級到 5.0.7。
  • 4.3.x 使用者應升級到 4.3.18。
  • 舊版本應升級到受支援的分支,或將 MappingJacksonJsonView 的 jsonpParameterNames 屬性設定為空集。

確實需要 JSONP 支援的應用程式在升級後需要明確配置 MappingJacksonJsonView 的 jsonpParameterNames 屬性。建議應用程式改用 CORS 而非 JSONP 來啟用跨域請求。Spring Framework 對 JSONP 的支援在 5.0.7 和 4.3.18 版本中已棄用,並將在 5.1 版本中移除。

致謝

此問題由 Meyyalagan Chandrasekaran 發現並報告。

參考資料

CVE-2018-1263: spring-integration-zip 的不安全解壓縮

危急 | 2018年5月11日 | CVE-2018-1263

描述

spring-integration-zip 的 1.0.2 版本之前存在任意檔案寫入漏洞,可以透過精心構造的 zip 壓縮包(也影響其他壓縮格式,如 bzip2、tar、xz、war、cpio、7z)實現,該壓縮包包含路徑遍歷的檔名。因此,當檔名與目標解壓縮目錄拼接時,最終路徑會超出目標資料夾。先前的 CVE-2018-1261 阻止了框架本身寫入檔案。雖然框架本身現在不會寫入此類檔案,但它會將錯誤路徑提供給使用者應用程式,使用者應用程式可能會無意中利用該路徑寫入檔案。

這特別適用於解壓縮轉換器。

這隻有在使用此庫的應用程式接受並解壓縮來自不受信任來源的 zip 檔案時才會發生。

受影響的 Spring 產品和版本

  • Spring Integration Zip 社群擴充套件專案 1.0.1.RELEASE 及更早版本。

緩解措施

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

  • 升級到 1.0.2.RELEASE

或者不要解壓縮不受信任的 zip 檔案。

致謝

此問題由 Snyk 安全研究團隊和 Abago Forgans 發現並負責任地報告。

歷史記錄

2018-05-11: 初次漏洞報告發布

領先一步

VMware 提供培訓和認證,為您的發展注入動力。

瞭解更多

獲取支援

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

瞭解更多

即將舉行的活動

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

檢視全部