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