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 系統上從檔案系統提供(而不是從 classpath 或 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 的 Multipart 內容汙染漏洞

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

描述

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

攻擊者若要成功,必須能夠猜測伺服器 A 為發往伺服器 B 的 multipart 請求選擇的 multipart boundary 值,這需要攻擊者同時控制伺服器,或透過單獨的攻擊途徑檢視伺服器 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 易受跨站請求偽造 (CSRF) 攻擊

中危 | 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<ul><li>5.0.x 使用者應更新到 5.0.1</li><li>4.2.x 使用者應更新到 4.2.4</li><li>4.1.x 使用者應更新到 4.1.5</li></ul>
  • Spring Framework<ul><li>5.0.x 使用者應更新到 5.0.3</li><li>4.3.x 使用者應更新到 4.3.14</li></ul>

作為一般預防措施,建議使用者將公共資源和私有資源分開。例如,將靜態資源分開並將它們對映到 /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

緩解措施

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

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

致謝

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

參考資料

CVE-2017-8045: spring-amqp 中的遠端程式碼執行漏洞

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

描述

在受影響的 Spring AMQP 版本中,當將 org.springframework.amqp.core.Message 轉換為字串時,可能存在不安全的反序列化。可以構造惡意 payload 來利用此漏洞,並實現遠端程式碼執行攻擊。

受影響的 Spring 產品和版本

  • Spring AMQP 版本低於 1.7.4、1.6.11 和 1.5.7

緩解措施

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

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

致謝

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

參考資料

CVE-2017-8039: Spring Web Flow 中的資料繫結表示式漏洞

中危 | 2017 年 9 月 15 日 | CVE-2017-8039

描述

此 CVE 涉及一種利用與 CVE-2017-4971 中描述的相同漏洞的第二種途徑。

未更改 MvcViewFactoryCreator useSpringBinding 屬性(預設停用,即設定為 “false”)值的應用程式,在處理表單提交但沒有子元素來宣告顯式資料繫結屬性對映的檢視狀態中,可能容易受到惡意 EL 表示式的影響。

受影響的 Spring 產品和版本

  • Spring Web Flow 2.4.0 到 2.4.5
  • 更早不受支援的版本也受到影響

緩解措施

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

  • 2.4.x 使用者應升級到 2.4.6

請注意,通常建議在檢視狀態中始終使用顯式資料繫結宣告,以防止表單提交將不應設定的欄位設定到目標物件上,這是一種良好的實踐。

使用 JSF 的 Spring Web Flow 使用者不受此報告影響。

致謝

此問題由安全研究員 he1renyagao 發現。

參考資料

搶佔先機

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

瞭解更多

獲取支援

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

瞭解更多

即將舉行的活動

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

檢視全部