Есть еще одна уязвимость десериализации в jackson-databind (2020-08-27), номер уязвимости CVE-2020-24616, которая влияет на уровень данных и оценивается какУязвимость с высоким риском
br.com.anteros: в Anteros-DBCP есть новая цепочка эксплойтов десериализации, которая может обойти ограничения черного списка jackson-databind.Удаленные злоумышленники могут вызывать удаленный код, отправляя специально созданные пакеты запросов в интерфейс веб-сервиса с помощью этого компонента.
Воздействовать на версию
Jackson-databind < 2.9.10.6
Влияет на версию Spring Boot
Джексон, как встроенный фреймворк для синтаксического анализа json в Spring Boot, до тех пор, пока введение
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Автоматически вводить jar-файлы, связанные с jackson, автор обнаружил, прочитав зависимости spring-boot-dependenciesВерсии ниже весенней загрузки 2.1.10 будут иметь связанные проблемы.
как исправить
Как обычно используемый парсер JSON, jackson имеет встроенный этот модуль в большинстве фреймворков, и нереально работать с каждым методом исключения.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<artifactId>jackson-databind</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.xkcoding.nacos</groupId>
<artifactId>nacos-config</artifactId>
<version>1.1.4</version>
<exclusions>
<exclusion>
<artifactId>jackson-databind</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
</exclusions>
</dependency>
Самый простой способ — добавить спецификацию версии в узел dependencyManagement корневого pom, тогда все версии jackson, представленные в эталонных пакетах, будут объединены в эту версию
<dependencyManagement>
<dependencies>
<dependency>
<artifactId>jackson-databind</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
<version>2.9.10.6</version>
</dependency>
</dependencies>
</dependencyManagement>
Суммировать
Не паникуйте,pig4cloud[1]Динамическая типизация не включена по умолчанию, иspring cache[2]Не использовать сериализацию Джексона.
Если ваш Redis использует сериализацию Джексона и внедряет глобальный ObjectMapper Обратите внимание, используйте что-то вродеmica-redis[3]Такая копия предназначена для предотвращения загрязнения глобального ObjectMapper и нарушения безопасности.
Позже мы переведем две статьи автора Джексона, чтобы дать вам более глубокое понимание механизмов динамической типизации и безопасности Джексона. Если вы знаете правду, вы должны знать причину, иначе будут лазейки, в которых конфигурация json-инструмента неверна.
использованная литература
[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