CVE-2015-3192 使用 XML 輸入的 DoS 攻擊

| 2015 年 6 月 30 日 | CVE-2015-3192

描述

XML 外部實體在釋出 http://pivotal.io/security/cve-2013-6429 時已被停用。如果 DTD 未完全停用,則內聯 DTD 宣告可用於執行被稱為 XML 炸彈的拒絕服務攻擊。此類宣告根據 XML schema 規則格式正確且有效,但解析時可能導致記憶體不足錯誤。為防禦此類攻擊,必須停用 DTD 支援,方法是在 DOM 和 SAX API 中將 disallow-doctype-dec 特性設定為 true,並在 StAX API 中將 supportDTD 屬性設定為 false

現在,Spring Framework 在框架設定從外部源解析 XML 的所有地方預設執行此操作。這主要包括 spring-oxm 中的 Unmarshaller 實現和 spring-web 中的 HttpMessageConverter 實現。

請注意,應用可能需要採取進一步措施,尤其是在使用 StAX 的情況下。例如,IBM JDK 1.6 和 1.7 除了設定 supportDTD=false 之外,還需要一個環境變數(參見 IBM JDK 參考)。此外,我們發現單獨的 supportDTD 並不能防禦 JDK JAXP 實現中的所有型別的 DoS 攻擊。因此,我們建議使用 Woodstox 開源庫進行 StAX 解析。

以下描述了何時在 Spring Framework 中使用 StAX

  • SourceHttpMessageConverter -- 預設啟用。該轉換器在 3.2 中新增,而 StAX 支援在 4.0.1 中新增,用於轉換為型別為 javax.xml.transform.stax.StAXSource 的 Spring MVC 控制器方法引數。
  • Jaxb2CollectionHttpMessageConverter -- 預設不啟用。此轉換器在 3.2 中新增。
  • MappingJackson2XmlHttpMessageConverter -- 當 classpath 中存在“jackson-dataformat-xml”時啟用。此轉換器在 4.1 中新增。

受影響的 Spring 產品和版本

  • Spring Framework 3.2.0 到 3.2.13
  • Spring Framework 4.0.0 到 4.1.6
  • 其他不受支援的版本也受到影響

緩解措施

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

  • 對於 3.2.x 版本,升級到 3.2.14+
  • 對於 4.0.x 和 4.1.x 版本,升級到 4.1.7+

此外,透過 StAX 消費外部來源的 XML 輸入的應用程式也應使用和/或升級到 Woodstox 庫的最新版本,例如 4.2+ 版本(4.2.1 是 Spring IO Platform 中當前託管的版本)。

關於新增 Woodstox 的說明

StAX 定義了一種標準機制,用於在存在多個 StAX 實現時選擇使用哪個實現,包括 WEB-INF/services 下的系統屬性和服務定義。Woodstox 包含必要的服務定義,因此只需將其新增到 classpath 中即可使用。然而,某些應用伺服器(例如 WebLogic)已經捆綁了 Woodstox 的(舊版本),在這種情況下,您可能需要配置伺服器以優先使用應用程式選擇的版本,請參閱此prefer-application-packages 參考

鳴謝

此問題由 NTT DATA Corporation 的 Toshiaki Maki 負責任地發現並報告給 Pivotal,他還協助開發和測試瞭解決方案。

參考資料

CVE-2015-0201 Java SockJS 客戶端會話 ID 隨機性不足

| 2015 年 3 月 6 日 | CVE-2015-0201

描述

Java SockJS 客戶端中的會話 ID 生成不夠安全,可能允許使用者向其他使用者的會話傳送訊息。

請注意,這僅影響使用 Java SockJS 客戶端的使用者,該客戶端生成自己的會話 ID。即使瀏覽器客戶端連線到同一伺服器,也不會受到影響。

此外,由於 SockJS 是傳輸層,當在其之上使用更高級別的訊息協議(例如使用 spring-messaging 模組的 STOMP over WebSocket)時,應用層安全性可能已經應用於 STOMP 訊息,這可以抵消任何潛在攻擊的影響。

受影響的 Spring 產品和版本

  • Spring Framework 4.1.0 到 4.1.4

緩解措施

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

  • 4.1.x 的使用者應升級到 4.1.5 或更高版本

鳴謝

Philippe Arteau 發現此問題並負責任地報告給 Pivotal。

參考資料

CVE-2014-3625 Spring Framework 中的目錄遍歷

中等 | 2014 年 11 月 11 日 | CVE-2014-3625

描述

一些 URL 在使用前未正確清理,允許攻擊者獲取檔案系統上 Spring Web 應用執行程序可訪問的任何檔案。

受影響的 Spring 產品和版本

  • Spring Framework 3.0.4 到 3.2.11
  • Spring Framework 4.0.0 到 4.0.7
  • Spring Framework 4.1.0 到 4.1.1
  • 其他不受支援的版本也可能受到影響

緩解措施

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

  • 3.2.x 的使用者應升級到 3.2.12 或更高版本
  • 4.0.x 的使用者應升級到 4.0.8 或更高版本
  • 4.1.x 的使用者應升級到 4.1.2 或更高版本

鳴謝

此問題由 NTT DATA Corporation 的 Toshiaki Maki 發現並負責任地報告給 Pivotal。

參考資料

CVE-2014-3578 Spring Framework 中的目錄遍歷

中等 | 2014 年 9 月 5 日 | CVE-2014-3578

描述

一些 URL 在使用前未正確清理,允許攻擊者獲取檔案系統上 Spring Web 應用執行程序可訪問的任何檔案。

受影響的 Spring 產品和版本

  • 4.0.0 到 4.0.4
  • 3.2.0 到 3.2.8
  • 已知 3.1.1 受到影響
  • 其他不受支援的版本也可能受到影響

緩解措施

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

  • 3.x 的使用者應升級到 3.2.9 或更高版本
  • 4.x 的使用者應升級到 4.0.5 或更高版本

鳴謝

此問題由 Mitsui Bussan Secure Directions, Inc. 的 Takeshi Terada 發現,並透過 JPCERT/CC 報告給 Pivotal。發現更多版本受到影響的資訊...

CVE-2014-3527 Spring Security 中的訪問控制繞過

| 2014 年 8 月 15 日 | CVE-2014-3527

描述

在使用 Spring Security 的 CAS Proxy ticket 認證時,惡意 CAS Service 可能欺騙另一個 CAS Service 認證未關聯的代理票據。這是因為代理票據認證使用了 HttpServletRequest 中的資訊,而該資訊是根據 HTTP 請求中的不可信資訊填充的。

這意味著如果存在關於哪些 CAS 服務可以相互認證的訪問控制限制,這些限制可能會被繞過。

如果使用者未使用 CAS Proxy ticket 且未基於 CAS Service 進行訪問控制決策,則對使用者沒有影響。

受影響的 Spring 產品和版本

  • 3.1 到 3.2.4

緩解措施

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

  • 3.2x 的使用者應升級到 3.2.5 或更高版本
  • 3.1.x 的使用者應升級到 3.1.7 或更高版本

鳴謝

此問題由 David Ohsie 發現,並由 CAS 開發團隊提請我們注意。

參考資料

CVE-2014-0225 使用 Spring MVC 時出現的 XML 外部實體 (XXE) 注入

| 2014 年 5 月 28 日 | CVE-2014-0225

描述

在處理使用者提供的 XML 文件時,Spring Framework 預設未停用 DTD 宣告中 URI 引用的解析。這導致了 XXE 攻擊。

受影響的 Spring 產品和版本

  • Spring MVC 3.0.0 到 3.2.8
  • Spring MVC 4.0.0 到 4.0.4
  • 更早的不受支援版本可能受到影響

緩解措施

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

  • 3.x 的使用者應升級到 3.2.9 或更高版本
  • 4.x 的使用者應升級到 4.0.5 或更高版本

鳴謝

此問題由 Nebula(XIAOBAISHAN,CHIBI,HUBEI.CN) HelloWorld 安全團隊和 DBappsecurity.com 安全團隊發現並負責任地報告給 Pivotal 安全團隊。其他...

CVE-2014-0054 CVE-2013-7315 / CVE-2013-6429 (XXE) 修復不完整

| 2014 年 3 月 11 日 | CVE-2014-0054

描述

Spring MVC 的 Jaxb2RootElementHttpMessageConverter 也處理使用者提供的 XML,並且既未停用 XML 外部實體,也未提供停用它們的選項。Jaxb2RootElementHttpMessageConverter 已被修改,以提供控制 XML 外部實體處理的選項,並且現在預設停用該處理。

受影響的 Spring 產品和版本

  • Spring MVC 3.0.0 到 3.2.7
  • Spring MVC 4.0.0 到 4.0.1
  • 更早的不受支援版本可能受到影響

緩解措施

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

  • 3.x 的使用者應升級到 3.2.8 或更高版本
  • 4.x 的使用者應升級到 4.0.2 或更高版本

鳴謝

此問題由 Spase Markovski 報告給 Spring Framework 開發人員。

參考資料

CVE-2014-0097 空密碼可能繞過使用者認證

| 2014 年 3 月 11 日 | CVE-2014-0097

描述

ActiveDirectoryLdapAuthenticator 未檢查密碼長度。如果目錄允許匿名繫結,則可能會錯誤地認證提供空密碼的使用者。

受影響的 Spring 產品和版本

  • Spring Security 3.2.0 到 3.2.1
  • Spring Security 3.1.0 到 3.1.5

緩解措施

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

  • 3.2.x 的使用者應升級到 3.2.2 或更高版本
  • 3.1.x 的使用者應升級到 3.1.6 或更高版本

鳴謝

此問題由 Spring 開發團隊發現。

參考資料

CVE-2014-1904 使用 Spring MVC 時出現的 XSS

中等 | 2014 年 3 月 11 日 | CVE-2014-1904

描述

當程式設計師未在 Spring 表單上指定 action 時,Spring 會自動使用請求的 uri 填充 action 欄位。攻擊者可以利用此特性將惡意內容注入表單。

受影響的 Spring 產品和版本

  • Spring MVC 3.0.0 到 3.2.7
  • Spring MVC 4.0.0 到 4.0.1
  • 更早的不受支援版本可能受到影響

緩解措施

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

  • 3.x 的使用者應升級到 3.2.8 或更高版本
  • 4.x 的使用者應升級到 4.0.2 或更高版本

鳴謝

此問題由 CAaNES LLC 的 Paul Wowk 發現並負責任地報告給 Pivotal 安全團隊。

參考資料

CVE-2013-6429 Spring Framework 中針對 XML 外部實體 (XXE) 注入 (CVE-2013-7315) 的修復不完整

| 2014 年 1 月 14 日 | CVE-2013-6429

描述

Spring MVC 的 SourceHttpMessageConverter 也處理使用者提供的 XML,並且既未停用 XML 外部實體,也未提供停用它們的選項。SourceHttpMessageConverter 已被修改,以提供控制 XML 外部實體處理的選項,並且現在預設停用該處理。隨後發現此修復也不完整(CVE-2014-0054)。

受影響的 Spring 產品和版本

  • Spring MVC 3.0.0 到 3.2.4
  • Spring MVC 4.0.0.M1-4.0.0.RC1
  • 更早的不受支援版本可能受到影響

緩解措施

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

  • 3.x 的使用者應升級到 3.2.5 或更高版本
  • 4.x 的使用者應升級到 4.0.0 或更高版本(此問題在 4.0.0-RC2 中也已修復,但建議使用者使用 4.0.0 或更高版本)
  • 為完全緩解此問題(包括 CVE-2014-0054),3.x 的使用者應升級到 3.2.8 或更高版本,4.x 的使用者應升級到 4.0.2 或更高版本。

鳴謝

此問題由 Spring 開發團隊發現。

參考資料

歷史記錄

2014 年 1 月 15 日:初始漏洞報告。

  • 2014 年 6 月 19 日:更新以反映將 CVE-2013-4152 拆分為 CVE-2013-4152 和 CVE-2013-7315。添加了關於發現此修復不完整的附加漏洞報告的資訊。

領先一步

VMware 提供培訓和認證,助力您的進步。

瞭解更多

獲取支援

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

瞭解更多

近期活動

檢視 Spring 社群的所有近期活動。

檢視全部