新聞中心
【漏洞分析】Spring遠程代碼執(zhí)行漏洞解決方案
作為目前全球最受歡迎的Java輕量級開源框架,Spring允許開發(fā)人員專注于業(yè)務邏輯,簡化Java企業(yè)級應用的開發(fā)周期。
Spring此前版本存在CVE-2010-1622漏洞,該漏洞由參數(shù)自動綁定機制導致,后通過黑名單方式修復。但JDK9后引入了Module,使得可以通過GetModule繞過黑名單限制,最終導致遠程代碼執(zhí)行。當前漏洞評級為高危,編號CVE-2022-22965/CNVD-2022-23942 。
攻擊者在滿足特定條件的情況下,可遠程通過框架參數(shù)綁定功能獲取AccessLogValve對象,從而觸發(fā)pipeline機制并寫入任意路徑下的文件。
漏洞影響范圍
已知受影響版本:
Spring Framework < 5.3.18
Spring Framework < 5.2.20
及其衍生產(chǎn)品:
JDK ≥ 9
JRE ≥ 9
不受影響版本:
Spring Framework = 5.3.18
Spring Framework = 5.2.20
或
JDK < 9
JRE < 9
我是否受到該漏洞威脅?(漏洞排查)
Step 1:檢查是否使用Spring框架,若未使用,則不存在該漏洞。
由于Java項目存在打包方式各異、Spring Bean常作為基礎組件Lib打包、非規(guī)范化命名等情況,推薦使用自動化迭代解壓的jar方式同時對spring-beans-*.jar和CachedIntrospectionResults.class進行匹配搜索。如果存在匹配,說明使用了Spring框架。
Step 2:檢查項目是否使用Spring參數(shù)綁定,若未使用,則不存在該漏洞。
由于該漏洞需要利用SpringMVC的參數(shù)綁定,因此項目若未使用參數(shù)綁定,則不受該漏洞威脅。
Step 3:檢查中間件使用的JDK版本,若版本號小于9,則不存在該漏洞。
通過系統(tǒng)進程確認中間件使用的JDK路徑,在命令行執(zhí)行java-version獲取當前的JDK版本。
Step 4:檢查當前使用的中間件是否為Tomcat,若未使用,則暫不受該漏洞影響。
目前公開的漏洞利用代碼只針對Tomcat中間件,但不排除后續(xù)有新的利用代碼出現(xiàn)。因此,非Tomcat中間件仍存在風險。
Step 5:檢查Tomcat是否啟用AccessLog,若未啟用,則暫不受該漏洞影響。
目前公開的漏洞利用代碼是通過覆蓋Tomcat日志相關配置實現(xiàn)后門文件寫入,但不排除后續(xù)有新的利用方式出現(xiàn)。在server.xml配置文件中,通過org.apache.catalina.valves.AccessLogValve關鍵字,可定位到AccessLog相關配置。
我要如何防護該漏洞?(處置建議)
1、官方防護措施
官方已發(fā)布新版本5.2.20.RELEASE和5.3.18修復該漏洞,受影響的用戶可盡快進行更新。
下載鏈接:https://github.com/spring-projects/spring-framework/releases
2、臨時防護措施
在應用系統(tǒng)的項目包中新建以下全局類,確保這個類被Spring加載(推薦在Controller所在包中添加)。完成類添加后,需要對項目進行重新編譯打包和功能驗證測試,并重新發(fā)布項目。
import org.springframework.core.annotation.Order;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.InitBinder;
@ControllerAdvice
@Order(10000)
public class a{
@InitBinder
public void setAllowedFields(WebDataBinder dataBinder) {
String[] abd = new String[]{"class.*", "Class.*", "*.class.*", "*.Class.*"};
dataBinder.setDisallowedFields(abd);
}
}
3、使用安博通深度安全網(wǎng)關
安博通深度安全網(wǎng)關已支持該漏洞防護,需要將規(guī)則包升級到20220331及以上版本。升級位置為:系統(tǒng)維護→系統(tǒng)升級→自動升級,點擊立即升級或下載離線特征庫手動升級。
規(guī)則編號:957764
規(guī)則名稱:spring framework rce漏洞
防護前對比
防護后效果
參考鏈接
https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
https://github.com/spring-projects/spring-framework/compare/v5.3.17...v5.3.18