CVE-2018-1270: spring-messaging 遠端程式碼執行

危急 | 2018年4月5日 | CVE-2018-1270

描述

Spring Framework 5.0.x(5.0.5之前)、4.3.x(4.3.16之前)以及更舊的不受支援的版本允許應用程式透過 spring-messaging 模組暴露帶有簡單記憶體 STOMP 代理的 WebSocket STOMP 端點。惡意使用者(或攻擊者)可以向代理構造一條訊息,從而導致遠端程式碼執行攻擊。

受影響的 Spring 產品和版本

  • Spring Framework 5.0 至 5.0.4
  • Spring Framework 4.3 至 4.3.15
  • 更舊的不受支援的版本也受到影響

緩解措施

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

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

無需其他緩解步驟。

請注意,使用 Spring Security 提供的訊息認證和授權功能,可將此漏洞的暴露限制在授權使用者範圍內。

致謝

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

參考資料

CVE-2018-1271: Windows 上 Spring MVC 的目錄遍歷漏洞

| 2018年4月5日 | CVE-2018-1271

描述

Spring Framework 5.0 至 5.0.4、4.3 至 4.3.14 以及更舊的不受支援的版本允許應用程式配置 Spring MVC 以提供靜態資源(例如 CSS、JS、圖片)。當靜態資源從 Windows 上的檔案系統提供時(而不是類路徑或 ServletContext),惡意使用者可以使用特製 URL 傳送請求,從而導致目錄遍歷攻擊。

受影響的 Spring 產品和版本

  • Spring Framework 5.0 至 5.0.4
  • Spring Framework 4.3 至 4.3.14
  • 更舊的不受支援的版本也受到影響

緩解措施

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

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

無需其他緩解步驟。

另請注意,此攻擊不適用於以下應用程式:

  • 不使用 Windows。
  • 不從檔案系統提供檔案,即資源位置不使用“file:”。
  • 使用已修補 CVE-2018-1199 的 Spring Security 版本。

致謝

此問題由 DEVCORE 的 Orange Tsai (@orange_8361) 發現並負責任地報告。

參考資料

CVE-2018-1272: Spring Framework 的多部分內容汙染漏洞

| 2018年4月5日 | CVE-2018-1272

描述

Spring Framework 5.0 至 5.0.4、4.3 至 4.3.14 以及更舊的不受支援的版本提供了對多部分請求的客戶端支援。當 Spring MVC 或 Spring WebFlux 伺服器應用程式(伺服器 A)從遠端客戶端接收輸入,然後使用該輸入向另一個伺服器(伺服器 B)發出多部分請求時,可能會受到攻擊,即在伺服器 A 的請求內容中插入額外的多部分,導致伺服器 B 對其期望的部分使用錯誤的值。這可能導致許可權提升,例如,如果部分內容代表使用者名稱或使用者角色。

為了使攻擊成功,攻擊者必須能夠猜測伺服器 A 為向伺服器 B 發出的多部分請求選擇的多部分邊界值,這要求攻擊者還必須能夠控制伺服器或透過單獨的攻擊向量檢視伺服器 A 的 HTTP 日誌。

受影響的 Spring 產品和版本

  • Spring Framework 5.0 至 5.0.4
  • Spring Framework 4.3 至 4.3.14
  • 更舊的不受支援的版本也受到影響

緩解措施

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

  • 5.0.x 使用者應升級到 5.0.5
  • 4.3.x 使用者應升級到 4.3.15

無需其他緩解步驟。

致謝

此問題由 GoSecure 的 Philippe Arteau 發現並負責任地報告。

歷史

2018-04-05: 初步漏洞報告發布

CVE-2018-1229: Spring Batch Admin 檔案上傳中的儲存型 XSS

| 2018年3月16日 | CVE-2018-1229

描述

Spring Batch Admin 檔案上傳功能中的跨站指令碼 (XSS) 漏洞允許遠端攻擊者透過與檔案上傳功能相關的特製請求注入任意 Web 指令碼或 HTML。

受影響的 Spring 產品和版本

  • 所有 Spring Batch Admin 版本

緩解措施

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

  • Spring Batch Admin 已於2018年1月1日停止維護。Spring Cloud Data Flow 是未來管理和監控 Spring Batch 任務的推薦替代方案。

致謝

此漏洞由 Wen Bin Kong 負責任地報告。

參考資料

CVE-2018-1230: Spring Batch Admin 易受跨站請求偽造攻擊

中等 | 2018年3月16日 | CVE-2018-1230

描述

Spring Batch Admin 不包含跨站請求偽造 (CSRF) 保護,這可能允許攻擊者製作惡意網站以執行對 Spring Batch Admin 的請求。

受影響的 Spring 產品和版本

  • 所有 Spring Batch Admin 版本

緩解措施

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

  • Spring Batch Admin 已於2018年1月1日停止維護。Spring Cloud Data Flow 是未來管理和監控 Spring Batch 任務的推薦替代方案。

致謝

此漏洞由 Wen Bin Kong 負責任地報告。

參考資料

CVE-2018-1196: 透過 Spring Boot 啟動指令碼的符號連結提權攻擊

| 2018年1月30日 | CVE-2018-1196

描述

Spring Boot 支援一個嵌入式啟動指令碼,可用於輕鬆將應用程式作為 systemd 或 init.d Linux 服務執行[1]。Spring Boot 1.5.9 及更早版本中包含的指令碼容易受到符號連結攻擊,該攻擊允許“run_user”覆蓋並獲取同一系統上任何檔案的所有權。

為了發動攻擊,應用程式必須作為服務安裝,並且“run_user”需要對伺服器具有 shell 訪問許可權。

未作為服務安裝或未使用嵌入式啟動指令碼的 Spring Boot 應用程式不受此影響。

[1] https://docs.springframework.tw/spring-boot/docs/1.5.x/reference/htmlsingle/#deployment-service

受影響的 Spring 產品和版本

  • Spring Boot
    • 1.5.0 - 1.5.9
    • 2.0.0.M1 - 2.0.0.M7
  • 未分析舊的未維護的 Spring Boot 版本,可能受影響。

緩解措施

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

  • 1.5.x 使用者應更新到 1.5.10
  • 2.0.x 預釋出版使用者應更新到 2.0.0.RC1

致謝

此問題由 Oracle Cloud Operations(英國)的 Adam Stephens 發現並負責任地報告給 Pivotal。

歷史

2018-01-30: 初步漏洞報告發布

CVE-2018-1199: 靜態資源的安全繞過

| 2018年1月29日 | CVE-2018-1199

描述

Spring Security 在處理安全約束時未考慮 URL 路徑引數。透過新增帶有特殊編碼的 URL 路徑引數,攻擊者可能能夠繞過安全約束。此問題的根本原因是 Servlet 規範中路徑引數處理缺乏明確性(見下文)。一些 Servlet 容器在 getPathInfo() 返回的值中包含路徑引數,而另一些則不包含。Spring Security 使用 getPathInfo() 返回的值作為將請求對映到安全約束的過程的一部分。在此特定攻擊中,路徑引數中使用的不同字元編碼允許繞過受保護的 Spring MVC 靜態資源 URL。

受影響的 Spring 產品和版本

  • Spring Security
    • 4.1.0 - 4.1.4
    • 4.2.0 - 4.2.3
    • 5.0.0
  • Spring Framework
    • 5.0.0 - 5.0.2
    • 4.3.0 - 4.3.13
  • 未分析舊的未維護的 Spring Security 和 Spring Framework 版本,可能受影響。

緩解措施

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

  • Spring Security
    • 5.0.x 使用者應更新到 5.0.1
    • 4.2.x 使用者應更新到 4.2.4
    • 4.1.x 使用者應更新到 4.1.5
  • Spring Framework
    • 5.0.x 使用者應更新到 5.0.3
    • 4.3.x 使用者應更新到 4.3.14

作為一般預防措施,鼓勵使用者將公共資源和私有資源分開。例如,分離靜態資源並將其對映到 /resources/public/** 和 /resources/private/** 優於在一個公共根目錄下混合公共和私有資源內容。

致謝

此問題由 NTT Comware、NTT DATA Corporation 和 NTT 的 Macchinetta Framework 開發團隊發現,並負責任地報告給 Pivotal。

歷史

2018-01-29: 初步…

CVE-2017-8028: Spring-LDAP 使用 userSearch 和 STARTTLS 進行身份驗證時允許使用任意密碼

| 2017年10月16日 | CVE-2017-8028

描述

當連線到某些 LDAP 伺服器時,如果未繫結其他屬性,並且使用 LDAP BindAuthenticator 和 org.springframework.ldap.core.support.DefaultTlsDirContextAuthenticationStrategy 作為身份驗證策略,並設定 userSearch,則當用戶名正確時,允許使用任意密碼進行身份驗證。發生這種情況是因為某些 LDAP 供應商要求明確的操作才能使 LDAP 繫結生效。

受影響的 Spring 產品和版本

  • Spring-LDAP 版本 1.3.0 - 2.3.1

緩解措施

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

  • 升級到 Spring-LDAP 版本 2.3.2.RELEASE+

致謝

此漏洞由 Tobias Schneider 負責任地報告。

參考資料

CVE-2017-8046: Spring Data REST 中 PATCH 請求的遠端程式碼執行

危急 | 2017年9月21日 | CVE-2017-8046

描述

提交給使用 Spring Data REST 支援的 HTTP 資源的伺服器的惡意 PATCH 請求可以使用特製 JSON 資料來執行任意 Java 程式碼。

受影響的 Spring 產品和版本

  • Spring Data REST 2.6.9 (Ingalls SR9) 之前、3.0.1 (Kay SR1) 之前的版本
  • Spring Boot(如果使用了 Spring Data REST 模組)1.5.9 之前、2.0 M6 之前的版本

緩解措施

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

  • 已修復此問題的版本包括:
    • Spring Data REST 2.6.9 (Ingalls SR9, 2017年10月27日)
    • Spring Data REST 3.0.1 (Kay SR1, 2017年10月27日)
    • Spring Boot 1.5.9 (2017年10月28日)
    • Spring Boot 2.0 M6 (2017年11月6日)

致謝

此漏洞由 Semmle 和 lgtm.com 的 Man Yue Mo 負責任地報告。

參考資料

CVE-2017-8045: spring-amqp 遠端程式碼執行

| 2017年9月19日 | CVE-2017-8045

描述

在受影響的 Spring AMQP 版本中,org.springframework.amqp.core.Message 在轉換為字串時可能被不安全地反序列化。可以製作惡意有效負載來利用此漏洞並啟用遠端程式碼執行攻擊。

受影響的 Spring 產品和版本

  • Spring AMQP 1.7.4、1.6.11 和 1.5.7 之前的版本

緩解措施

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

  • 已修復此問題的版本包括:
    • Spring AMQP: 2.0.0, 1.7.4, 1.6.11, 1.5.7

致謝

此漏洞由 Semmle 和 lgtm.com 的 Man Yue Mo 負責任地報告。

參考資料

領先一步

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

瞭解更多

獲得支援

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

瞭解更多

即將舉行的活動

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

檢視所有