Fastjson反序列化遠(yuǎn)程代碼執(zhí)行漏洞

 漏洞資訊     |      2022-05-23

一、  漏洞描述

Fastjson官方發(fā)布公告稱在1.2.80及以下版本中存在新的反序列化風(fēng)險(xiǎn),在特定條件下可繞過(guò)默認(rèn)autoType關(guān)閉限制,從而反序列化有安全風(fēng)險(xiǎn)的類,攻擊者利用該漏洞可實(shí)現(xiàn)在目標(biāo)機(jī)器上的遠(yuǎn)程代碼執(zhí)行。請(qǐng)相關(guān)用戶盡快采取防護(hù)措施。

Fastjson是阿里巴巴的開(kāi)源JSON解析庫(kù),它可以解析JSON格式的字符串,支持將Java Bean序列化為JSON字符串,也可以從JSON字符串反序列化到JavaBean。由于具有執(zhí)行效率高的特點(diǎn),應(yīng)用范圍廣泛。

二、  漏洞詳情

: Fastjson反序列化遠(yuǎn)程代碼執(zhí)行

CVE: 無(wú)

組件: Fastjson

漏洞類型: 代碼問(wèn)題

影響: 遠(yuǎn)程代碼執(zhí)行

簡(jiǎn)述: 見(jiàn)漏洞描述。

三、  影響版本


影響產(chǎn)品或系統(tǒng)版本

安全版本

Fastjson

<=1.2.80

1.2.83

四、  安全版本

見(jiàn)三

五、  安全建議

漏洞自查:

相關(guān)用戶可使用以下命令檢測(cè)當(dāng)前使用的Fastjson版本:

lsof | grep fastjson

注:在Fastjson 1.2.68及之后的版本中,官方添加了SafeMode 功能,可完全禁用autoType。

通用修補(bǔ)建議:

目前官方已在最新版本1.2.83中修復(fù)了該漏洞,請(qǐng)受影響的用戶盡快升級(jí)版本進(jìn)行防護(hù),官方下載鏈接:https://github.com/alibaba/fastjson/releases

升級(jí)步驟如下:

備份原fastjson依賴庫(kù),避免升級(jí)失敗的情況發(fā)生。

將低版本的fastjson庫(kù)替換為2.83版本即可

開(kāi)發(fā)人員可通過(guò)配置Maven的方式對(duì)應(yīng)用進(jìn)行升級(jí)并編譯發(fā)布,配置如下:

<dependency>

    <groupId>com.alibaba</groupId>

    <artifactId>fastjson</artifactId>

    <version>1.2.83</version>

</dependency>

注:該版本涉及autotype行為變更,在某些場(chǎng)景會(huì)出現(xiàn)不兼容的情況,若遇到問(wèn)題可以到 https://github.com/alibaba/fastjson/issues 尋求幫助。

臨時(shí)修補(bǔ)建議:

fastjson在1.2.68及之后的版本中引入了safeMode,配置safeMode后,無(wú)論白名單和黑名單,都不支持autoType,可杜絕反序列化Gadgets類變種攻擊(關(guān)閉autoType注意評(píng)估對(duì)業(yè)務(wù)的影響)。開(kāi)啟方法可參考 https://github.com/alibaba/fastjson/wiki/fastjson_safemode 。1.2.83修復(fù)了此次發(fā)現(xiàn)的漏洞,開(kāi)啟safeMode是完全關(guān)閉autoType功能,避免類似問(wèn)題再次發(fā)生,這可能會(huì)有兼容問(wèn)題,請(qǐng)充分評(píng)估對(duì)業(yè)務(wù)影響后開(kāi)啟。