当前位置:首页 > > 架构师社区
[导读]今天中午收到我司安全部发了一封邮件:Jackson存在安全漏洞。查了一下,这件事并不算很新鲜了(已经过了10天的样子),本文来聊聊吧。

前言

你好,我是YourBatman。

今天中午收到我司安全部发了一封邮件:Jackson存在安全漏洞。查了一下,这件事并不算很新鲜了(已经过了10天的样子),本文来聊聊吧。

说起来还蛮戏剧化:阿里云向Jackson官方提交了一个Jackson序列化安全漏洞。众所周知,在国内关于JSON库使用有两大主要阵营:「国际著名的Jackson库」「国内阿里巴巴出品的Fastjson」

同样的功能定位,不存在竞争想想也觉得不可能嘛。所以当我看到这个漏洞竟是阿里云上报的,就觉得这关系还蛮微妙呢,默默的腹黑了3秒钟,哈哈。

附:FasterXML/jackson-databind是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。Jackson是美国FasterXML公司的一款适用于Java的数据处理工具。jackson-databind是其中的一个具有数据绑定功能的组件。再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报

正文

熟悉A哥的小伙伴知道,自从Fastjson上次爆出重大安全漏洞之后,我彻底的投入到了Jackson的阵营,工作中也慢慢去Fastjson化。这不还专门撰写了一篇文章来说明此事:Fastjson到了说再见的时候了。为了顺利完成“迁移”,我还专门写了一个,也有可能是全网唯一一个Jackson专栏,虽然很小众但就是干了~

关于本次漏洞

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官方上报了这个安全漏洞:再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报当天,官方回复预计会在8-15左右发布bug修复版本修复次问题(waht?知道问题了还得10后修复?):再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报可结果是10天都不止。直到8.25这天,Jackson发布2.9.10.6版本修复了此问题,并向外界发公告公布此漏洞:再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报

从8.5号Jackson官方知晓此漏洞,到8.25号最终发版解决此问题,「整整20天」,为何需要这么久?我想真像只有一个:此漏洞影响真的不大,或者说影响范围较窄。回忆下上次Fastjson出现的那个安全漏洞,24h内就给与了修复版本,并不是因为我们反映迅速,而是因为影响重大等不了...

修复建议

一股脑的全部升级到2.9.10.6或以上版本当然能规避此安全问题,但是你是否想过,你负责多少个服务?你团队、公司一共有多少个服务?你品,你细品,头大吗?

从官方对此次漏洞做出的反射弧时间来看,本次漏洞影响是相对较小的,因此我总结了下修复建议,倘若你「同时满足」如下三个条件,那么需要立马修复,否则可暂不理会:

  1. 对公网提供API接口
  2. Jackson版本小于2.9.10.6
  3. 工程内 「有」使用(或者引入)如下4个类任意一个:
    1. br.com.anteros.dbcp.AnterosDBCPDataSource
    2. com.pastdev.httpcomponents.configuration.JndiConfiguration
    3. com.nqadmin.rowset.JdbcRowSetImpl
    4. org.arrah.framework.rdbms.UpdatableJdbcRowsetImpl

条件3的理论支撑是我对比2.9.10.6版本release改动源码 + 我和我司安全组人员的讨论结果。修复方案也仅仅是在黑名单里新增了这4个类,截图如下:再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报

总结

外行看热闹,内行看门道。千万不能说Fastjson出了个漏洞,Jackson也来一个就得出结论说打平手了,那会稍显外行。正所谓假设可以大胆,但小心求证,下结论需要谨慎。

总的来说,此次漏洞影响甚小,不用大惊小怪,我就继续我的Jackson之旅啦。


	

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭