1. 程式人生 > 其它 >Spring Framework 遠端命令執行漏洞(CVE-2022-22965)

Spring Framework 遠端命令執行漏洞(CVE-2022-22965)

Spring Framework 遠端命令執行漏洞

(CVE-2022-22965)

 近日,Spring 官方 GitHub issue中提到了關於 Spring Core 的遠端命令執行漏洞,該漏洞廣泛存在於Spring 框架以及衍生的框架中。

漏洞形成原因:

  Spring core是Spring系列產品中用來負責發現、建立並處理bean之間的關係的一個工具包,是一個包含Spring框架基本的核心工具包,Spring其他元件都要使用到這個包。

  未經身份驗證的攻擊者可以使用此漏洞進行遠端任意程式碼執行。 該漏洞廣泛存在於Spring 框架以及衍生的框架中,JDK 9.0及以上版本會受到影響。使用舊JDK版本的產品不受影響。建議存在該漏洞的企業在防火牆處阻止帶有特殊字串的請求,以免受到該漏洞的攻擊。

影響版本限制:

使用Apache Tomcat作為Servlet容器

使用傳統WAR部署

基於spring-webmvc或spring-webflux

Spring框架版本為5.3.0至5.3.17,5.2.0至5.2.19,或更早版本

JDK 9.0及以上版本會受到影響

FOFA搜尋:

app="APACHE-Tomcat" || app="vmware-SpringBoot-framework" || app="vmware-SpringBoot-framework" || app="vmware-Spring-Batch" || app="vmware-Spring-framework" || app="vmware-Spring-Security"

漏洞復現:

首先搭建好復現靶場

通過exploit工具直接命令執行

 

 

 

工具來源於Github 

 

漏洞修復:

升級Spring Framework 版本

Spring Framework == 5.3.18 
Spring Framework == 5.2.20

臨時防禦方案:

1、 WAF防禦。

可以在WAF中新增以下規則對特殊輸入的字串進行過濾:

Class.*
class.*
*.class.*
*Class.*

2、通過黑名單策略進行防護。

您可在受影響產品程式碼中搜索@InitBinder註解,判斷方法體內是否有dataBinder.serDisallowerFields方法,若發現存在該方法,則在黑名單中新增如下過濾規則:

Class.*
class.*
*.class.*
*Class.*