關于Jackson框架存在Java反序列化代碼執行漏洞的安全公告
近日,國(guó)家信息安全漏洞共享平台(CNVD)收錄了CNVD白帽子(ID:ayound)報送的Jackson框架enableDefaultTyping方法反序列化漏洞(CNVD-2017-04483)。攻擊者利用漏洞可在服務器主機上執行任意代碼或系統指令,取得網站服務器的控制權
一、漏洞情況分析
Jackson是一套開(kāi)源的java序列化與反序列化工具框架,可將(jiāng)java對(duì)象序列化爲xml和json格式的字符串及提供對(duì)應的反序列化過(guò)程。由于其解析效率較高,目前是Spring MVC中内置使用的解析方式。4月15日,CNVD白帽子(ID:ayound)提交了Jackson存在Java反序列化漏洞的情況,CNVD秘書處進(jìn)行了本地環境核實,确認漏洞在一定條件下可被(bèi)觸發(fā),達到任意代碼和系統指令執行的目的。該漏洞的觸發(fā)條件是ObjectMapper反序列化前調用了enableDefaultTyping方法。該方法允許json字符串中指定反序列化java對(duì)象的類名,而在使用Object、Map、List等對(duì)象時,可誘發(fā)反序列化漏洞。
CNVD對(duì)該漏洞的綜合評級爲“高危”。
二、漏洞影響範圍
漏洞影響Jackson 2.7版本(<2.7.10)、2.8版本(<2.8.9)。根據CNVD秘書處對(duì)Jackson應用普查的結果,目前互聯網上約有9.1萬台網站服務器标定爲使用了Jackson框架,其中排名前五位的國(guó)家有:美國(guó)(占比68.8%)、中國(guó)(8.2%)、英國(guó)(4.1%)、德國(guó)(2.0%)、荷蘭(2.0%)。目前,暫未進(jìn)一步抽樣(yàng)核驗實際受影響的比例情況。
三、防護建議
Jackson開(kāi)發(fā)方已經(jīng)對(duì)ayound提交的情況進(jìn)行了回應,并發(fā)布了修複更新。用戶需更新到2.7.10或2.8.9版本,同時後(hòu)續將(jiāng)發(fā)布的2.9.0版本也會加入該漏洞的修複措離。
附:參考鏈接:
http://www.cnvd.org.cn/flaw/show/CNVD-2017-04483
https://github.com/FasterXML/jackson-databind/issues/1599(修複安全建議)