漏洞风险通告及更新 | Fastjson反序列化漏洞
近日Fastjson Develop Team 发现 fastjson 1.2.80及以下版本存在新的风险。[1]5月23日,fastjson官方发布漏洞风险通告,声明修复了一处新的反序列化漏洞。
“
1
漏洞描述
fastjson已使用黑白名单用于防御反序列化漏洞,经研究该利用在特定条件下可绕过默认autoType关闭限制,攻击远程服务器,风险影响较大。建议使用fastjson的用户尽快采取安全措施保障系统安全。
“
2
风险定级
高危(CVSS 3.1 Base Score:8.1)
“
3
影响版本
fastjson <= 1.2.80
“
4
修复建议
1. 更新到1.2.83及以上版本
可通过以下两种方式实现更新:
(1)手动更新至安全修复版本
从GitHub开源项目官方地址中下载最新的安全修复版本:
https://github.com/alibaba/fastjson/releases/tag/1.2.83
(2)通过Maven包管理工具更新
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
2. 开启safeMode功能
fastjson在1.2.68及之后的版本中引入了safeMode,配置safeMode后,无论白名单和黑名单,都不支持autoType,可杜绝反序列化Gadgets类变种攻击(关闭autoType注意评估对业务的影响),有三种方式配置SafeMode[2]:
(1)在代码中配置
ParserConfig.getGlobalInstance().setSafeMode(true);
注意,如果使用new ParserConfig的方式,需要注意单例处理,否则会导致低性能full gc。
(2)加上JVM启动参数
-Dfastjson.parser.safeMode=true
(3)通过fastjson.properties文件配置
通过类路径的fastjson.properties文件来配置,配置方式如下:
fastjson.parser.safeMode=true
3. 升级到fastjson v2
fastjson已经开源2.0版本,在2.0版本中,不再为了兼容提供白名单,提升了安全性。fastjson v2代码已经重写,性能有了很大提升,不完全兼容1.x,升级需要做认真的兼容测试。
“
5
快速检测
下载并使用OpenSCA cli工具,来检测您的应用中引入的开源组件,审查应用内是否引入该漏洞组件。
OpenSCA cli:
OpenSCA idea插件:
https://github.com/XmirrorSecurity/OpenSCA-intellij-plugin/releases
使用方法可移步下列地址查看:
https://opensca.xmirror.cn/docs/v1/start.html
检测结果示例
“
6
漏洞库更新
本次OpenSCA云平台(opensca.xmirror.cn)除更新了fastjson组件漏洞的检测外,同步更新了其他风险等级较高的漏洞。
“
7
参考资料
[1]https://github.com/alibaba/fastjson/wiki/security_update_20220523
[2]https://github.com/alibaba/fastjson/wiki/fastjson_safemode
欢迎大家扫码联系小镜
加入OpenSCA社区技术交流群
OpenSCA是悬镜安全旗下源鉴OSS开源威胁管控产品的开源版本,继承了源鉴OSS的多源SCA开源应用安全缺陷检测等核心能力。
OpenSCA用开源的方式做开源风险治理,致力于做软件供应链安全的护航者,守护中国软件供应链安全。
OpenSCA的代码会在GitHub和Gitee持续迭代,欢迎Star和PR,成为我们的开源贡献者,也可提交问题或建议至Issues。我们会参考大家的建议不断完善OpenSCA开源项目,敬请期待更多功能的支持。
GitHub:
https://github.com/XmirrorSecurity/OpenSCA-cli/
Gitee:
https://gitee.com/XmirrorSecurity/OpenSCA-cli/
OpenSCA官网:
https://opensca.xmirror.cn/