fastjson 1.2.68 反序列化远程代码执行漏洞

0x00 背景
fastjson采用黑白名单的方法来防御反序列化漏洞,导致当黑客不断发掘新的反序列化Gadgets类时,在autoType关闭的情况下仍然可能可以绕过黑白名单防御机制,造成远程命令执行漏洞。经研究,该漏洞利用门槛较低,可绕过autoType限制,风险影响较大。阿里云应急响应中心提醒fastjson用户尽快采取安全措施阻止漏洞攻击。

 

0x01 影响范围
fastjson < 1.2.69

fastjson sec 版本 < sec10

0x02 漏洞修复
1、升级至安全版本 较低版本升级至最新版本 1.2.69 可能会出现兼容性问题,建议升级至特定 版本的 sec10 bugfix 版本,请参考以下链接尽快修复: https://repo1.maven.org/maven2/com/alibaba/fastjson/

2、开启 SafeMode 若无法立即升级版本,可通过开启 SafeMode 来缓解此漏洞。fastjson 在 1. 2.68 及之后的版本中引入了 SafeMode,配置 SafeMode 后,无论白名单和黑名 单,都不支持 autoType,可一定程度上缓解反序列化 Gadgets 类变种攻击。以 下为配置 SafeMode 的三种方式: (

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

3、采用其他json处理组件替换,jackson-databind漏洞也频发,建议使用Gson

4、使用WAF/云防火墙紧急漏洞拦截,再升级到安全版本