Spring框架驚爆大漏洞 啟明星辰提供漏洞掃描和消控方案

發布時間 2022-04-02

近期,啟明星辰漏掃團隊在漏洞監控中發現Spring框架中存在一個嚴重的遠程代碼執行漏洞,該漏洞影響Jdk 9.0以上版本的Spring框架及其衍生框架,包括但不限于Spring Cloud、Spring Boot等。


此漏洞利用方式簡單,危害嚴重。Spring官方已針對此漏洞發布新版本,建議用戶盡快升級版本或采取其他防護措施,避免受到該漏洞的攻擊。


漏洞概述


1、漏洞基本描述


3月31日,VMware發布安全公告,修復了Spring Framework中的遠程代碼執行漏洞(CVE-2022-22965)。在 JDK 9 及以上版本環境下,可以利用此漏洞在未授權的情況下,在目標系統上寫入惡意程序,從而遠程執行任意代碼。


該漏洞影響了在JDK 9+上運行的Spring框架或其衍生框架構建的網站或應用,目前官方已在Spring Framework 5.3.18+和5.2.20+中修復了此漏洞。鑒于此漏洞的PoC/EXP已公開,建議相關用戶盡快排查修復。


2、漏洞影響情況


運行環境為:JDK9及以上版本

受影響的產品及版本:

Spring Framework 5.3.0 -5.3.17

Spring Framework 5.2.0 - 5.2.19

漏洞可利用性:高


漏洞排查


當同時滿足以下條件時,表明可能受此漏洞影響:

① JDK版本 >= 9;

② 使用Spring框架或衍生框架,當前使用了Tomcat中間件(目前公開的漏洞利用代碼只針對Tomcat中間件,但不排除存在其它風險)。


排查方法:

① JDK版本號排查

執行“java -version"命令查看JDK版本,如果版本號小于等于8,則不受此漏洞影響。


② Spring框架使用情況排査


?如果業務系統項目以war包形式部署,按照如下的步驟進行判斷:


解壓war包:將war文件的后級修改成 .zip文件;

在解壓縮目錄下搜索是否存在spring-beans-*.jar格式的文件(例如spring-beans-5.3.16.jar),如存在則說明業務系統使用了 Spring框架進行開發;如果spring-beans-*.jar文件不存在,則在解壓縮目錄下搜索CachedlntrospectionResults.class文件是否存在,如存在則說明業務系統使用了 Spring框架進行開發。


?如果業務系統項目以jar包形式獨立運行,按照如下的步驟進行判斷:


解壓jar包:將jar文件的后綴修改成zip,解壓zip 文件;

在解壓縮目錄下搜索是否存在spring-beans-*.jar格式的jar文件(例如spring-beans-5.3.16.jar),如存在則說明業務系統使用了 Spring框架進行開發;如果spring-beans-*.jar文件不存在,則在解壓縮目錄下搜索CachedIntrospectionResults.class文件是否存在,如果存在則說明業務系統使用了 Spring框架進行開發。


漏洞驗證


根據上述漏洞分析結果,我們使用了公開提權腳本對該漏洞進行了驗證。


至此發現文件寫入并執行了相應的命令,訪問webshell發現成功執行whoami命令,結果為root。


漏洞檢測


啟明星辰漏掃系統已于2022年3月31日緊急發布針對該漏洞的升級包,支持對該漏洞進行原理掃描,用戶升級標準漏洞庫后即可對該漏洞進行掃描:


6070版本升級包為607000425

升級包下載地址:

https://venustech.download.venuscloud.cn/

授權掃描方式.png

授權掃描方式


原理掃描方式.png

原理掃描方式


請使用啟明星辰漏掃系統產品的用戶盡快升級到最新版本,及時對該漏洞進行檢測,以便盡快采取防范措施。


啟明星辰Web應用檢測系統已于2022年3月31日緊急發布針對該漏洞的升級包,支持對該漏洞進行掃描,用戶升級啟明星辰Web漏掃產品漏洞庫后即可對該漏洞進行掃描:



升級包版本:7d_V3.0.5

升級包下載地址:

https://venustech.download.venuscloud.cn/


升級后已支持該漏洞

請啟明星辰Web應用檢測系統產品的用戶盡快升級到最新版本,及時對該漏洞進行檢測,以便盡快采取防范措施。



基線核查


啟明星辰安全配置核查管理系統已于2022年3月31日緊急發布針對該漏洞的核查資源包,支持對該漏洞進行核查,用戶升級安全配置核查管理系統資源包后后即可對該漏洞進行核查:



臨時措施


需同時按以下兩個步驟進行漏洞的臨時修復:


1、在應用中全局搜索@InitBinder注解,看看方法體內是否調用dataBinder.setDisallowedFields方法,如果發現此代碼片段的引入,則在原來的黑名單中,添加{"class.*","Class.*","*.class.*","*.Class.*"}。注:如果此代碼片段使用較多,需要每個地方都追加。


2、在用系統的項目包下新建以下全局類,并保證這個類被Spring 加載到(推薦在Controller所在的包中添加)。完成類添加后,需對項目進行重新編譯打包和功能驗證測試,并重新發布項目。


修復建議


通用修復:目前官方已經修復了此漏洞,受影響用戶可以升級更新到Spring Framework 5.3.18或5.2.20。


下載鏈接:

https://github.com/spring-projects/spring-framework/tags