「高危漏洞」起床!檢查SpringBoot 版本
jackson-databind 又出現(xiàn)了反序列化漏洞(2020-08-27),漏洞編號為 CVE-2020-24616,影響到數(shù)據(jù)層面,判斷為高危漏洞
br.com.anteros:Anteros-DBCP 中存在新的反序列化利用鏈,可以繞過 jackson-databind 黑名單限制,遠程攻擊者通過向使用該組件的 web 服務接口發(fā)送特制請求包,可以造成 遠程代碼執(zhí)行。
影響版本
Jackson-databind < 2.9.10.6
影響 Spring Boot 版本
Jackson 作為 Spring Boot 內(nèi)置的 json 解析框架,只要引入了
??<dependency>
????<groupId>org.springframework.bootgroupId>
????<artifactId>spring-boot-starter-webartifactId>
??dependency>
自動引入 jackson 相關 jar , 筆者通過翻閱 spring-boot-dependencies 依賴發(fā)現(xiàn)低于 spring boot 2.1.10 版本都會有相關的問題。

如何修復
jackson 作為常用的 JSON 解析器,大多數(shù)框架中已經(jīng)內(nèi)置此模塊,通過 exclusion 每個來處理及其不現(xiàn)實。
??<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 節(jié)點增加一個版本指定,則所有引用包中引入的 jackson 版本都會統(tǒng)一成此版本
<dependencyManagement>
??<dependencies>
????<dependency>
??????<artifactId>jackson-databindartifactId>
??????<groupId>com.fasterxml.jackson.coregroupId>
??????<version>2.9.10.6version>
????dependency>
??dependencies>
dependencyManagement>
總結
不必驚慌,pig4cloud[1] 默認沒開啟動態(tài)類型,并且 spring cache[2] 沒有使用 jackson 序列化。
如果你的 redis 采用的 jackson 序列化,并且是注入的全局的 ObjectMapper 請注意,請采用類似 mica-redis[3] 這樣的 copy,來避免對全局的 ObjectMapper 污染導致不安全。

參考資料
pig4cloud: https://gitee.com/log4j/pig
[2]spring cache: https://gitee.com/log4j/pig/pulls/63
[3]mica-redis: https://gitee.com/596392912/mica
