新聞動(dòng)態(tài)
近期創(chuàng)安攻防實(shí)驗(yàn)室監(jiān)測到Spring官方發(fā)布安全公告,披露了一個(gè)Spring框架可在JDK>=9版本下實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行的漏洞(CVE-2022-22965)。此漏洞影響范圍極廣,建議客戶盡快做好自查工作。
漏洞描述
該漏洞是SpringFramework數(shù)據(jù)綁定的一個(gè)漏洞,如果后臺(tái)方法中接受的參數(shù)為非基礎(chǔ)類型,Spring會(huì)根據(jù)前端傳入的請求正文中的參數(shù)的key值來查詢與其名稱所對應(yīng)的getter和setter方法,攻擊者利用這一特性修改了Tomcat的一個(gè)用于日志記錄的類的屬性,進(jìn)而當(dāng)Tomcat在進(jìn)行寫日志操作的時(shí)候,將攻擊者傳遞的惡意代碼寫入指定目錄的指定文件中。
影響范圍
漏洞編號
CVE-2022-22965
漏洞等級
嚴(yán)重
漏洞復(fù)現(xiàn)
目前外界Exp/PoC已公開,創(chuàng)安實(shí)驗(yàn)室已驗(yàn)證該漏洞的可利用性:
修復(fù)建議
Spring官方目前已發(fā)布安全版本,建議用戶盡快更新至安全版本,下載鏈接如下
https://github.com/spring-projects/spring-framework
(一)WAF防護(hù)
在WAF等網(wǎng)絡(luò)防護(hù)設(shè)備上,根據(jù)實(shí)際部署業(yè)務(wù)的流量情況,實(shí)現(xiàn)對class.*, Class.*,*.class.*,*.Class.* 等字符串的規(guī)則過濾,并在部署過濾規(guī)則后,對業(yè)務(wù)運(yùn)行情況進(jìn)行測試,避免產(chǎn)生額外影響。
(二)臨時(shí)修復(fù)措施
需同時(shí)按以下兩個(gè)步驟進(jìn)行漏洞的臨時(shí)修復(fù):
1、在應(yīng)用中全局搜索@InitBinder注解,看看方法體內(nèi)是否調(diào)用dataBinder.setDisallowedFields方法,如果發(fā)現(xiàn)此代碼片段的引入,則在原來的黑名單中,添加{"class.*","Class.*","*.class.*","*.Class.*"}。(注:如果此代碼片段使用較多,需要每個(gè)地方都追加)
2、在用系統(tǒng)的項(xiàng)目包下新建以下全局類,并保證這個(gè)類被Spring 加載到(推薦在Controller所在的包中添加)。完成類添加后,需對項(xiàng)目進(jìn)行重新編譯打包和功能驗(yàn)證測試,并重新發(fā)布項(xiàng)目。
本文僅限于個(gè)人學(xué)習(xí)和技術(shù)研究,由于傳播、利用此文所提供的信息而造成刑事案件、非授權(quán)攻擊等違法行為,均由使用者本人負(fù)責(zé),本單位不為此承擔(dān)任何責(zé)任。創(chuàng)安攻防實(shí)驗(yàn)室擁有對此文章的修改和解釋權(quán),如欲轉(zhuǎn)載或傳播此文章,必須保證此文章的完整性,包括版權(quán)聲明等全部內(nèi)容。
如有侵權(quán),請聯(lián)系后臺(tái)。