【漏洞通告】Fastjson反序列化遠程代碼執行漏洞
由于autotype開關的限制可被繞過,請受影響用戶升級fastjson至1.2.68及以上版本,通過開啟safeMode配置完全禁用autoType。三種配置SafeMode的方式如下:
通告編號:NS-2022-0016

漏洞概述
5月23日,綠盟科技CERT監測到Fastjson官方發布公告稱在1.2.80及以下版本中存在新的反序列化風險,在特定條件下可繞過默認autoType關閉限制,從而反序列化有安全風險的類,攻擊者利用該漏洞可實現在目標機器上的遠程代碼執行。請相關用戶盡快采取措施進行防護。
Fastjson是阿里巴巴的開源JSON解析庫,它可以解析JSON格式的字符串,支持將Java Bean序列化為JSON字符串,也可以從JSON字符串反序列化到JavaBean。由于具有執行效率高的特點,應用范圍廣泛。
參考鏈接:
https://github.com/alibaba/fastjson/wiki/securityupdate20220523
影響范圍
受影響版本
- Fastjson ≤ 1.2.80
不受影響版本
- Fastjson = 1.2.83
漏洞檢測
3.1 人工檢測
相關用戶可使用以下命令檢測當前使用的Fastjson版本:
lsof | grep fastjson
注: 在Fastjson 1.2.68及之后的版本中,官方添加了SafeMode 功能,可完全禁用autoType。
漏洞防護
4.1 官方升級
目前官方已在最新版本1.2.83中修復了該漏洞,請受影響的用戶盡快升級版本進行防護,官方下載鏈接:https://github.com/alibaba/fastjson/releases
升級步驟如下:
1.備份原fastjson依賴庫,避免升級失敗的情況發生。
2.將低版本的fastjson庫替換為1.2.83版本即可
開發人員可通過配置Maven的方式對應用進行升級并編譯發布,配置如下:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.83</version> </dependency>
注:該版本涉及autotype行為變更,在某些場景會出現不兼容的情況,若遇到問題可以到 https://github.com/alibaba/fastjson/issues 尋求幫助。
4.2 臨時防護措施
若相關用戶暫時無法進行升級操作,也可使用下列方式進行緩解:
1.在代碼中配置:
ParserConfig.getGlobalInstance().setSafeMode(true);
2.加上JVM啟動參數:
-Dfastjson.parser.safeMode=true
如果有多個包名前綴,可用逗號隔開。
3.通過fastjson.properties文件配置:
通過類路徑的fastjson.properties文件來配置,配置方式如下:
fastjson.parser.safeMode=true
參考官方文檔:https://github.com/alibaba/fastjson/wiki/fastjson_safemode
另可通過將有風險的類添加至黑名單進行防護:
ParserConfig.getGlobalInstance().addDeny("類名");
利用鏈可參考:
https://github.com/alibaba/fastjson/commit/560782c9ee12120304284ba98b61dc61e30324b3
ParserConfig.getGlobalInstance().setSafeMode(true) |