1. 通告信息
近日,監(jiān)測(cè)到一則 Spring Framework 組件存在遠(yuǎn)程代碼執(zhí)行漏洞的信息,漏洞威脅等級(jí):嚴(yán)重。
該漏洞是由于 Spring Framework 未對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行有效的驗(yàn)證,攻擊者可利用該漏洞在未授權(quán)的情況下,構(gòu)造惡意數(shù)據(jù)進(jìn)行遠(yuǎn)程代碼執(zhí)行攻擊,最終獲取服務(wù)器權(quán)限。
對(duì)此,安識(shí)科技建議廣大用戶及時(shí)升級(jí)到安全版本,并做好資產(chǎn)自查以及預(yù)防工作,以免遭受黑客攻擊。
2. 漏洞概述
CVE: CVE-2022-22965
簡(jiǎn)述:Spring 是一個(gè)支持快速開(kāi)發(fā) Java EE 應(yīng)用程序的框架。它提供了一系列底層容器和基礎(chǔ)設(shè)施,并可以和大量常用的開(kāi)源框架無(wú)縫集成,可以說(shuō)是開(kāi)發(fā) Java EE 應(yīng)用程序的必備。該漏洞是由于 Spring Framework 未對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行有效的驗(yàn)證,攻擊者可利用該漏洞在未授權(quán)的情況下,構(gòu)造惡意數(shù)據(jù)進(jìn)行遠(yuǎn)程代碼執(zhí)行攻擊,最終獲取服務(wù)器權(quán)限。
3. 漏洞危害
攻擊者可利用該漏洞在未授權(quán)的情況下,構(gòu)造惡意數(shù)據(jù)進(jìn)行遠(yuǎn)程代碼執(zhí)行攻擊,最終獲取服務(wù)器權(quán)限。
4. 影響版本
目前受影響的 Spring Framework 的版本:
Spring Framework 5.3.X < 5.3.18
Spring Framework 5.2.X < 5.2.20
注:其他 Spring Framework 舊版本同樣會(huì)受到影響。
Spring Framework 官方提供
Spring Framework 5.3.18 和 Spring Framework 5.2.20兩個(gè)安全版本(截止至3月31日)
5. 解決方案
一、官方修復(fù)建議:
當(dāng)前 Spring Framework 官方已發(fā)布最新版本,建議受影響的用戶及時(shí)更新升級(jí)到最新版本。
注:Spring Framework 5.3.18和Spring Framework 5.2.20是 Spring 官方提供的兩個(gè)安全版本(截止至3月31日)
二、臨時(shí)修復(fù)建議:
該臨時(shí)修復(fù)建議存在一定風(fēng)險(xiǎn),建議用戶可根據(jù)業(yè)務(wù)系統(tǒng)特性審慎選擇采用臨時(shí)修復(fù)方案:
需同時(shí)按以下兩個(gè)步驟進(jìn)行漏洞的臨時(shí)修復(fù):
1.在應(yīng)用中全局搜索@InitBinder注解,看看方法體內(nèi)是否調(diào)用dataBinder.setDisallowedFields 方法,如果發(fā)現(xiàn)此代碼片段的引入,則在原來(lái)的黑名單中,添加{"class.*","Class. *","*. class.*", "*.Class.*"}。(注:如果此代碼片段使用較多,需要每個(gè)地方都追加)
2. 在應(yīng)用系統(tǒng)的項(xiàng)目包下新建以下全局類,并保證這個(gè)類被 Spring 加載到(推薦在Controller 所在的包中添加).完成類添加后,需對(duì)項(xiàng)目進(jìn)行重新編譯打包和功能驗(yàn)證測(cè)試。并重新發(fā)布項(xiàng)目。