A. fastjson可以解析嵌套的內部類嗎
,其有個工具類JSON可以直接把字元串解析為JSONObject,
B. fastjson再曝重大安全漏洞,嚴重可導致服務癱瘓
2019年9月5日,fastjson在commit 上提交了旨在修復當字元串中包含\x轉義字元時可能引發OOM的問題的修復。
360CERT 判斷該漏洞危害中。影響面較大。攻擊者可以通過發送構造好的請求而致使當前線程癱瘓,當發送的惡意請求過多時有可能使業務直接癱瘓。
建議廣大用戶對自身的業務/產品進行組件自查,確認fastjson版本至少升級到1.2.60
漏洞的關鍵胡跡點在com.alibaba.fastjson.parser.JSONLexerBase#scanString中,當傳入json字元串時,fastjson會按位獲取json字元串,當識別到字元串為\x為開頭時,會默認獲取後兩位字元,並將後兩指賣位字元與\x拼接將其變成完整的十六進制字元來處褲逗並理:
而當json字元串是以\x結尾時,由於fastjson並未對其進行校驗,將導致其繼續嘗試獲取後兩位的字元。也就是說會直接獲取到\u001A也就是EOF:
當fastjson再次向後進行解析時,會不斷重復獲取EOF,並將其寫到內存中,直到觸發oom錯誤:
最終效果為:
fastjson < 1.2.60版本
2019-09-03 fastjson提交修補commit
2019-09-05 360CERT發布預警
2019-09-07 周末加班升級!
PS:jackson最近也發布了多個版本進行漏洞修復。