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/授權掃描方式
原理掃描方式
請使用啟明星辰漏掃系統產品的用戶盡快升級到最新版本,及時對該漏洞進行檢測,以便盡快采取防范措施。
啟明星辰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