CVE Vulnerabilities

CVE-2020-11111

Deserialization of Untrusted Data

Published: Mar 31, 2020 | Modified: Nov 21, 2024
CVSS 3.x
8.8
HIGH
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
CVSS 2.x
6.8 MEDIUM
AV:N/AC:M/Au:N/C:P/I:P/A:P
RedHat/V2
RedHat/V3
8.1 IMPORTANT
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Ubuntu
MEDIUM
root.io logo minimus.io logo echo.ai logo

FasterXML jackson-databind 2.x before 2.9.10.4 mishandles the interaction between serialization gadgets and typing, related to org.apache.activemq.* (aka activemq-jms, activemq-core, activemq-pool, and activemq-pool-jms).

Weakness

The product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid.

Affected Software

NameVendorStart VersionEnd Version
Jackson-databindFasterxml2.9.0 (including)2.9.10.4 (excluding)
EAP-CD 19 Tech PreviewRedHatjackson-databind*
Red Hat Data Grid 7.3.7RedHat*
Red Hat Decision Manager 7RedHatjackson-databind*
Red Hat Fuse 7.7.0RedHatjackson-databind*
Red Hat Process Automation 7RedHatjackson-databind*
Red Hat Single Sign-On 7.4.0RedHatjackson-databind*
Red Hat Software Collections for Red Hat Enterprise Linux 7RedHatrh-maven35-jackson-databind-0:2.7.6-2.9.el7*
Red Hat Software Collections for Red Hat Enterprise Linux 7.5 EUSRedHatrh-maven35-jackson-databind-0:2.7.6-2.9.el7*
Red Hat Software Collections for Red Hat Enterprise Linux 7.6 EUSRedHatrh-maven35-jackson-databind-0:2.7.6-2.9.el7*
Red Hat Software Collections for Red Hat Enterprise Linux 7.7 EUSRedHatrh-maven35-jackson-databind-0:2.7.6-2.9.el7*
Text-Only RHOARRedHat*
Jackson-databindUbuntubionic*
Jackson-databindUbuntueoan*
Jackson-databindUbuntuesm-apps/xenial*
Jackson-databindUbuntufocal*
Jackson-databindUbuntutrusty*
Jackson-databindUbuntutrusty/esm*
Jackson-databindUbuntuupstream*
Jackson-databindUbuntuxenial*

Potential Mitigations

  • Make fields transient to protect them from deserialization.
  • An attempt to serialize and then deserialize a class containing transient fields will result in NULLs where the transient data should be. This is an excellent way to prevent time, environment-based, or sensitive variables from being carried over and used improperly.

References