Spring学习|Spring boot项目Fortify漏洞扫描问题解决

一、背景
前段时间公司使用Fortify工具对项目源码进行安全漏洞扫描,结果报出Dynamic Code Evaluation: Unsafe Deserialization漏洞。整个项目是基于Spring boot框架开发的。
二、问题源
Fortify工具明确指出该安全漏洞是由于引入了Spring Boot Actuator依赖导致的

org.springframework.boot spring-boot-starter-actuator

显然,由于项目已经投入使用,不能将该依赖直接删除,影响太大。所以经过上网搜索终于找到解决办法,现分享如下:
三、解决办法
Fortify报出这个问题不是因为Spring Boot Actuator本身,而是因为它对Jackson的传递依赖。Jackson可能包含了会对不可信数据进行反序列化,因此如果这个警告是Jackson发出的,那么它就是一个误报。
【Spring学习|Spring boot项目Fortify漏洞扫描问题解决】问题的根源是Spring Boot Actuator 对 "jackson-databind”的传递依赖导致的。这个漏洞在Jackson 2.9.7中被修复了,它阻止了某些类的多态反序列化。Spring Boot 2.0.6和2.1.0默认使用Jackson 2.9.7
解决方法:打开pom文件的依赖层次结构查看Jackson-databind版本。如果版本低于2.9.7,则在spring-boot-starter-actuator中exclude掉Jackson-databind,并单独添加更高版本(不低于2.9.7)的Jackson-databind。
org.springframework.boot spring-boot-starter-actuator com.fasterxml.jackson.core jackson-databind com.fasterxml.jackson.core jackson-databind 2.10.0


    推荐阅读