冤冤相报何时了,得饶人处且饶人。本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈、MyBatis、JVM、中间件等小而美的 专栏供以免费学习。关注公众号【 BAT的乌托邦】逐个击破,深入掌握,

✍前言

你好,我是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是其中的一个具有数据绑定功能的组件。

✍正文

熟悉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官方上报了这个安全漏洞:

当天,官方回复预计会在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或以上版本当然能规避此安全问题,但是你是否想过,你负责多少个服务?你团队、公司一共有多少个服务?你品,你细品,头大吗?

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

✍总结

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

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

✔推荐阅读:

  • Fastjson到了说再见的时候了
  • 1. 初识Jackson -- 世界上最好的JSON库
  • 2. 妈呀,Jackson原来是这样写JSON的
  • 3. 懂了这些,方敢在简历上说会用Jackson写JSON
  • 4. JSON字符串是如何被解析的?JsonParser了解一下
  • 5. JsonFactory工厂而已,还蛮有料,这是我没想到的
  • 6. 二十不惑,ObjectMapper使用也不再迷惑
  • 7. Jackson用树模型处理JSON是必备技能,不信你看

♥关注A哥♥

Author | A哥(YourBatman) -------- | ----- 个人站点 | www.yourbatman.cn E-mail | yourbatman@qq.com 微 信 | fsx641385712 公众号 | BAT的乌托邦(ID:BAT-utopia) 知识星球 | BAT的乌托邦 每日文章推荐 | 每日文章推荐

阿里fastjson_再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报相关推荐

  1. 以太坊再爆高危漏洞!黑客增发ATN 1100万枚token事件始末

    以太坊再爆高危漏洞!黑客增发ATN 1100万枚token事件始末 编者按:5月11日,ATN Token遭受恶意攻击,攻击者利用DSAuth库与ERC223搭配使用具有的混合漏洞,窃取了ATN的所有 ...

  2. 小心!智能合约再爆高危漏洞,两大加密货币直接变废纸!

    小心!智能合约再爆高危漏洞,两大加密货币直接变废纸! 大家都还记得,前一段时间发生的BEC智能合约的安全漏洞问题.近日,智能合约安全问题再次上演,火币Pro发布公告,暂停EDU冲提币业务,随后EDU智 ...

  3. ImageMagick再爆严重漏洞,可导致雅虎邮箱用户邮件内容泄漏

    本文讲的是ImageMagick再爆严重漏洞,可导致雅虎邮箱用户邮件内容泄漏, 在安全研究员发现图片处理库ImageMagick存在严重漏洞.可导致服务器内存数据泄漏错误后,雅虎工程师决定把自家网站上 ...

  4. 【黑鸟安全预警与每日资源】S2-048!Struts2 再爆高危漏洞!

    [黑鸟安全预警]S2-048!Struts2 再爆高危漏洞!目前POC已公开,请各单位检查自己的应用是否有使用了Struts2 Struts1的插件!若使用了该插件会导致不受信任的输入传入到 Acti ...

  5. 再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报

    ✍前言 你好,我是YourBatman. 今天中午收到我司安全部发了一封邮件:Jackson存在安全漏洞.查了一下,这件事并不算很新鲜了(已经过了10天的样子),本文来聊聊吧. 说起来还蛮戏剧化:阿里 ...

  6. Struts 2再爆高危漏洞CVE-2017-5638 绿盟科技发布免费扫描工具及产品升级包

    Apache Structs2的Jakarta Multipart parser插件存在远程代码执行漏洞,漏洞编号为CVE-2017-5638.cwiki.apache.org公告了这个信息. 绿盟科 ...

  7. Android 再爆新漏洞,9.0 以下所有手机全部中招!

    作为移动操作系统市场的龙头老大 Android,除了大版本更新发布一些新特性外,日常的小版本还是以修复诸多的 Bug 为主.但这一次的 Bug 与以往有所不同,它将影响 Android 9.0 Pie ...

  8. 阿里再爆调整组织架构;苹果秘密研究卫星传输iPhone数据,想摆脱运营商网络;联发科天玑1000:首款采用4颗A77的芯片……...

    关注并标星星CSDN云计算 速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周两次,打卡即read   更快.更全了解泛云圈精彩news   go ...

  9. 开发者周刊:英特尔再爆重大芯片漏洞;微软开源Bing搜索关键算法;Facebook联合创始人呼吁拆分Facebook

    开发者周刊:只为传递"有趣/有用"的开发者内容,点击订阅! 本周热门项目 GitHub推出软件包托管服务Package Registry 本周,GitHub 再下一城,推出自己的软 ...

最新文章

  1. php证券k线图,php画K线图的一个工具
  2. Mysql存储引擎MyIsAM和InnoDB区别
  3. (Spring)整合mybatis
  4. 所有计算机都可以安装win7,几种安装win7系统的方法介绍
  5. 简单易学的机器学习算法——神经网络之BP神经网络
  6. JRE System Library和 Referenced Libraries 的区别和来源
  7. 鉴别一个人是否 js 入门的标准竟然是?!
  8. 如何更改Visual Studio 2008中类文件引用的默认名称空间?
  9. 手机 modem开发(22)---modem 通信 -- 几模 几频
  10. 苹果手机的隔空投送怎么使用?
  11. WebSocket心跳检测和重连机制
  12. day21 re模块
  13. python处理Excel数据串行串列问题
  14. 数字图像处理的技术方法和应用
  15. Java ques: java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
  16. 计算机网络---考前最后一背
  17. 13:求圆的周长和面积
  18. Dynamips路由模拟器使用心得
  19. Hbase入门教程和分布式的安装部署
  20. NLP 自然语言初体验

热门文章

  1. VS出现C4996的意思以及解决方法
  2. java 6位随机数_关于java:生成6位数的随机数
  3. Css 结构伪类选择器
  4. JAVA语言开发软件的优势有哪些?
  5. MySQL、SQL Server中字符串拼接
  6. 论文解读:MDETR - Modulated Detection for End-to-End Multi-Modal Understanding
  7. 2022-2028全球与中国仓库货架系统市场现状及未来发展趋势
  8. windows+centos7双系统安装
  9. 利用AStyle对C++代码进行自动化风格规范管理
  10. 100进制计算机,模100进制计数器.doc