正文
熟悉A哥的小伙伴知道,自从Fastjson上次爆出重大安全漏洞之后,我彻底的投入到了Jackson的阵营,工作中也慢慢去Fastjson化。
关于本次漏洞
2020年8月25日,jackson-databind(官方)发布了Jackson-databind序列化漏洞的安全通告,漏洞编号为CVE-2020-24616。
漏洞详情
该漏洞源于不安全的反序列化。远程攻击者可通过精心构造的恶意载荷利用该漏洞在系统执行任意代码。
其实上它的底层原理是利用某些类的反序列化利用链,可以绕过 jackson-databind 黑名单限制,远程攻击者通过向使用该组件的web服务接口发送特制请求包(精心构造的JSON),可以造成远程代码执行影响。
漏洞评级
评定方式 | 等级 |
---|---|
威胁等级 | 高危 |
影响面 | 有限 |
漏洞评分 | 75 |
对此评级没有概念?那就来个参照物比一比嘛,我把Fastjson上次(2020-05)的安全漏洞评级给你做对比:
评定方式 | 等级 |
---|---|
威胁等级 | 高危 |
影响面 | 广泛 |
漏洞评分 | 75 |
有限和广泛的的区别到底有多大,用文字不太好描述。打个比方,我觉得可类比艾滋病和新冠病毒的区别,前者对社会生态影响并不大,而后者恨不得让全球都停摆了,即使它致死率还远没有前者那么高,这就是影响范围的“力量”。
影响版本
jackson-databind < 2.9.10.6
因为现在大家都基于Spring Boot开发,针对版本号我扩展一下,方便你对号入座哈:
Spring Boot版本 | Jackson版本 |
---|---|
1.5.22.RELEASE | 2.8.x |
2.0.9.RELEASE | 2.9.x |
2.1.16.RELEASE | 2.9.10.5 |
2.2.9.RELEASE | 2.10.x |
2.3.3.RELEASE | 2.11.x |
Spring Boot2.1.x应该是现行主流使用版本,因此从版本号上来看,大概率都在此次漏洞的射程范围内。
安全版本
jackson-databind 2.9.10.6或者2.10.x及以后版本
故事时间轴
2020-08-05,阿里云安全组同学向Jackson官方上报了这个安全漏洞:
当天,官方回复预计会在8-15左右发布bug修复版本修复次问题(waht?知道问题了还得10后修复?):
可结果是10天都不止。直到8.25这天,Jackson发布2.9.10.6版本修复了此问题,并向外界发公告公布此漏洞:
从8.5号Jackson官方知晓此漏洞,到8.25号最终发版解决此问题,整整20天,为何需要这么久?我想真相只有一个:此漏洞影响真的不大,或者说影响范围较窄。回忆下上次Fastjson出现的那个安全漏洞,24h内就给予了修复版本,并不是因为我们反映迅速,而是因为影响重大等不了…
修复建议
一股脑的全部升级到2.9.10.6或以上版本当然能规避此安全问题,但是你是否想过,你负责多少个服务?你团队、公司一共有多少个服务?你品,你细品,头大吗?
从官方对此次漏洞做出的反射弧时间来看,本次漏洞影响是相对较小的,因此我总结了下修复建议,倘若你同时满足如下三个条件,那么需要立马修复,否则可暂不理会:
- 对公网提供API接口
- Jackson版本小于2.9.10.6
- 工程内有使用(或者引入)如下4个类任意一个:
- br.com.anteros.dbcp.AnterosDBCPDataSource
- com.pastdev.httpcomponents.configuration.JndiConfiguration
- com.nqadmin.rowset.JdbcRowSetImpl
- org.arrah.framework.rdbms.UpdatableJdbcRowsetImpl
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
需要这份系统化资料的朋友,可以点击这里获取
、实战项目、大纲路线、讲解视频,并且后续会持续更新**