「高危漏洞」起床!检查SpringBoot 版本

JAVA架构日记

共 1334字,需浏览 3分钟

 ·

2020-08-30 12:03

jackson-databind 又出现了反序列化漏洞(2020-08-27),漏洞编号为 CVE-2020-24616,影响到数据层面,判断为高危漏洞

br.com.anteros:Anteros-DBCP 中存在新的反序列化利用链,可以绕过 jackson-databind 黑名单限制,远程攻击者通过向使用该组件的 web 服务接口发送特制请求包,可以造成 远程代码执行。

影响版本

Jackson-databind < 2.9.10.6

影响 Spring Boot 版本

Jackson 作为 Spring Boot 内置的 json 解析框架,只要引入了

  <dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
  dependency>

自动引入 jackson 相关 jar , 笔者通过翻阅 spring-boot-dependencies 依赖发现低于 spring boot 2.1.10 版本都会有相关的问题

如何修复

jackson 作为常用的 JSON 解析器,大多数框架中已经内置此模块,通过 exclusion 每个来处理及其不现实。

  <dependency>
   <groupId>org.springframework.bootgroupId>
   <artifactId>spring-boot-starter-webartifactId>
   <exclusions>
    <exclusion>
     <artifactId>jackson-databindartifactId>
     <groupId>com.fasterxml.jackson.coregroupId>
    exclusion>
   exclusions>
  dependency>

  <dependency>
   <groupId>com.xkcoding.nacosgroupId>
   <artifactId>nacos-configartifactId>
   <version>1.1.4version>
   <exclusions>
    <exclusion>
     <artifactId>jackson-databindartifactId>
     <groupId>com.fasterxml.jackson.coregroupId>
    exclusion>
   exclusions>
  dependency>

最简单的方式在 根 pom 的 dependencyManagement 节点增加一个版本指定,则所有引用包中引入的 jackson 版本都会统一成此版本

<dependencyManagement>
  <dependencies>
    <dependency>
      <artifactId>jackson-databindartifactId>
      <groupId>com.fasterxml.jackson.coregroupId>
      <version>2.9.10.6version>
    dependency>
  dependencies>
dependencyManagement>

总结

不必惊慌,pig4cloud[1] 默认没开启动态类型,并且 spring cache[2] 没有使用 jackson 序列化。

如果你的 redis 采用的 jackson 序列化,并且是注入的全局的 ObjectMapper 请注意,请采用类似 mica-redis[3] 这样的 copy,来避免对全局的 ObjectMapper 污染导致不安全。

参考资料

[1]

pig4cloud: https://gitee.com/log4j/pig

[2]

spring cache: https://gitee.com/log4j/pig/pulls/63

[3]

mica-redis: https://gitee.com/596392912/mica


浏览 59
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报