基於JDK9的Spring核心爆RCE 0-day漏洞 - Cyber

banq發表於2022-03-30

今天,研究人員發現了一個可能破壞網際網路的最嚴重漏洞之一,這個漏洞目前沒有 CVE id(當時是待確認,3月31日已經確認 CVE-2022-22965),但我們可以將其 稱為 Spring4Shell
該漏洞存在於JDK版本大於等於9.0的Spring核心中。
這個漏洞可能類似2021年底Log4j RCE 0-day 漏洞:Log4Shell

漏洞詳情和調查
(1).檢查JDK版本號 
在系統的執行伺服器上,執行“ java -version ”命令檢視執行的JDK版本。如果版本號小於等於8,則不受漏洞影響。

(2) 檢查 Spring 框架的使用情況
1.如果系統專案以war包的形式部署,請按照以下步驟進行判斷。
  • 解壓war包。將war檔案的字尾改為.zip,並解壓壓縮檔案
  • 在解壓目錄中搜尋spring-beans-*.jar格式的jar檔案(例如,spring-beans-5.3.16.jar)。如果它存在,說明該業務系統是使用spring框架開發的。
  • 如果spring-beans-*.jar檔案不存在,在解壓目錄下搜尋CachedIntrospectionResuLts.class檔案是否存在。如果它存在,說明該業務系統是使用Spring框架開發的。


2. 如果系統專案以jar包的形式直接獨立執行,則按照以下步驟判斷。
  • 解壓縮jar包。將jar檔案的字尾改為.zip,並解壓壓縮檔案。
  • 在解壓目錄中搜尋spring-beans-*.jar格式的jar檔案(例如,spring-beans-5.3.16.jar)。如果它存在,說明該業務系統是使用spring框架開發的。
  • 如果spring-beans-*.jar檔案不存在,在解壓目錄下搜尋CachedIntrospectionResuLts.class檔案是否存在。如果它存在,說明該業務系統是使用spring框架開發的。



(3) 全面調查
在完成以上兩步排查後,同時滿足以下兩個條件,就可以確定是受此漏洞影響。
  • JDK版本號為9及以上。
  • 使用spring框架或衍生框架。

 

漏洞修復指南
目前,官方還沒有針對的補丁。但建議使用以下兩種臨時解決方案進行防護,並及時關注官方補丁的釋出,根據官方補丁修復漏洞。

從 Git Repository來看,Spring 開發者似乎正在著手修復遠端程式碼執行漏洞,但我們必須等待官方確認。
 
更新:
用於測試是否易受Spring4Shell攻擊的工具

另外一個測試工具:使用嵌入式 Tomcat 的 Spring 應用程式似乎並不容易受到攻擊,但構建為 .war 檔案並部署到獨立 Tomcat 的應用程式可能容易受到攻擊。在 JDK 11.0.14、Spring Boot 2.6.5 和 Tomcat 9.0.60 上測試。

其他細節:



更新:

Spring Framework RCE官方公告

3月31日已經確認 CVE-2022-22965  嚴重性程度:危急Critical

漏洞暴露的先決條件:

  • JDK 9 或更高版本
  • Apache Tomcat 作為 Servlet 容器
  • 打包為 WAR
  • spring-webmvc 或 spring-webflux 依賴項

受影響Spring版本:
  • Spring Framework
    • 5.3.0 to 5.3.17
    • 5.2.0 to 5.2.19
    • 舊的、不受支援的版本也會受到影響


為什麼隻影響WAR而不影響Jar釋出包
這與WAR包中的類載入器許可權開放有,,因為嵌入式 servlet 使用了更嚴格的類載入器。
這一切都是因為幾年前基於另一個 CVE 的工作,它變成了一個更廣泛開放的類載入器。

更準確地說,多年前的CVE修復阻止了通過類物件訪問類載入器。Java 9通過模組又暴露了類載入器,模組可以從類中訪問,因此提供了一種繞過舊的CVE修復的方法。
結合這一點,獨立的Tomcat的網路應用程式類載入器有寫到webapps目錄的許可權,你就得到了當前的POCs。
嵌入式Tomcat的類載入器沒有這樣的許可權,因此不能寫出用於在這些POCs中觸發RCE的jsp檔案。
然而,如果這個問題的根本原因是Spring對錶單引數繫結的處理,可能與war/jar檔案的格式,或Tomcat的存在,或Java版本有什麼關係。
就我們所知,可能還有其他尚未公佈的漏洞途徑。但它們不一定像RCE那樣嚴重。

因此,雖然公佈的概念證明只適用於基於WAR包的部署,但完全有可能發現另一種不存在這種限制的攻擊,但是使用了相同的機制。

相關文章