近日,阿里雲應急響應中心監測到fastjson爆發新的反序列化遠程代碼執行漏洞,黑客利用漏洞,可繞過autoType限制,直接遠程執行任意命令攻擊服務器,風險極大。
1. 漏洞描述
fastjson採用黑白名單的方法來防禦反序列化漏洞,導致當黑客不斷髮掘新的反序列化Gadgets類時,在autoType關閉的情況下仍然可能可以繞過黑白名單防禦機制,造成遠程命令執行漏洞。經研究,該漏洞利用門檻較低,可繞過autoType限制,風險影響較大。阿里雲應急響應中心提醒fastjson用戶儘快採取安全措施阻止漏洞攻擊。
2. 影響版本
- fastjson <=1.2.68
- fastjson sec版本 <= sec9
- android版本不受此漏洞影響
3. 升級方案
升級到最新版本1.2.69或者更新的1.2.70版本。
- 1.2.69 https://github.com/alibaba/fastjson/releases/tag/1.2.69
- 1.2.70 https://github.com/alibaba/fastjson/releases/tag/1.2.70
如果遇到兼容問題,原地升級sec10版本。
- 1.1.15~1.1.31 -> 1.1.31.sec10
- 1.1.32~1.1.33 -> 1.1.33.sec10
- 1.1.34 -> 1.1.34.sec10
- 1.1.35~1.1.46 -> 1.1.46.sec10
- 1.2.0~1.2.2 -> 1.2.2.sec10 因爲1.2.3之後的版本Map是沒有排序輸出的,如果不關注這個兼容問題,升級到1.2.70
- 1.2.3~1.2.7 -> 1.2.7.sec10 因爲1.2.7使用最多特別提供,也可以直接使用1.2.8.sec10
- 1.2.8 -> 1.2.8.sec10
- 1.2.9~1.2.29 -> 1.2.29.sec10
- 1.2.30~1.2.48 -> 1.2.48.sec10
- 1.2.49~1.2.68 -> 1.2.69或1.2.70 中間有很多sec10小版本,建議直接升級到1.2.69或1.2.70,如果遇到兼容再考慮sec10版本
如果還遇到其他兼容問題,這裏有更多的sec10版本 https://repo1.maven.org/maven2/com/alibaba/fastjson/
4. safeMode加固
fastjson在1.2.68及之後的版本中引入了safeMode,配置safeMode後,無論白名單和黑名單,都不支持autoType,可一定程度上緩解反序列化Gadgets類變種攻擊(關閉autoType注意評估對業務的影響)
- 開啓方法參考: https://github.com/alibaba/fastjson/wiki/fastjson_safemode
官網地址:https://github.com/alibaba/fastjson/wiki/security_update_20200601
其他參考資料:https://www.ithome.com/0/490/069.htm