CVE Vulnerabilities

CVE-2019-17571

Deserialization of Untrusted Data

Published: Dec 20, 2019 | Modified: Nov 21, 2024
CVSS 3.x
9.8
CRITICAL
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
7.5 HIGH
AV:N/AC:L/Au:N/C:P/I:P/A:P
RedHat/V2
RedHat/V3
9.8 IMPORTANT
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Ubuntu
MEDIUM
root.io logo minimus.io logo echo.ai logo

Included in Log4j 1.2 is a SocketServer class that is vulnerable to deserialization of untrusted data which can be exploited to remotely execute arbitrary code when combined with a deserialization gadget when listening to untrusted network traffic for log data. This affects Log4j versions up to 1.2 up to 1.2.17.

Weakness

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

Affected Software

NameVendorStart VersionEnd Version
Log4jApache*1.2.17 (including)
Red Hat Enterprise Linux 6 Extended Lifecycle SupportRedHatlog4j-0:1.2.14-6.7.el6_10*
Red Hat Enterprise Linux 7RedHatlog4j-0:1.2.17-16.el7_4*
Red Hat Fuse 7.3.1RedHat*
Red Hat JBoss BPMS 6.4RedHat*
Red Hat JBoss BRMS 6.4RedHat*
Red Hat JBoss Data Grid 7.1RedHat*
Red Hat JBoss Data Virtualization 6.4.8.SP1RedHat*
Red Hat JBoss Data Virtualization 6.4.8.SP2RedHat*
Red Hat JBoss EAP 7RedHat*
Red Hat JBoss Enterprise Application Platform 5.2 security updateRedHat*
Red Hat JBoss Enterprise Application Platform 5 for RHEL 5RedHatlog4j-0:1.2.14-19.patch_01.ep5.el5*
Red Hat JBoss Enterprise Application Platform 5 for RHEL 6RedHatlog4j-0:1.2.14-19.patch_01.ep5.el6*
Red Hat JBoss Enterprise Application Platform 6.4RedHat*
Red Hat JBoss Enterprise Application Platform 6.4 for RHEL 6RedHatjboss-ec2-eap-0:7.5.17-1.Final_redhat_4.ep6.el6*
Red Hat JBoss Enterprise Application Platform 7.0 for RHEL 6RedHateap7-jboss-ec2-eap-0:7.0.8-1.GA_redhat_1.ep7.el6*
Red Hat JBoss Enterprise Application Platform 7.0 for RHEL 7RedHateap7-jboss-ec2-eap-0:7.0.8-1.GA_redhat_1.ep7.el7*
Red Hat JBoss Web Server 3.1RedHat*
Red Hat JBoss Web Server 3 for RHEL 6RedHatlog4j-eap6-0:1.2.16-12.redhat_3.1.ep6.el6*
Red Hat JBoss Web Server 3 for RHEL 6RedHattomcat7-0:7.0.70-22.ep7.el6*
Red Hat JBoss Web Server 3 for RHEL 6RedHattomcat8-0:8.0.36-24.ep7.el6*
Red Hat JBoss Web Server 3 for RHEL 6RedHattomcat-native-0:1.2.8-10.redhat_10.ep7.el6*
Red Hat JBoss Web Server 3 for RHEL 7RedHatlog4j-eap6-0:1.2.16-12.redhat_3.1.ep6.el7*
Red Hat JBoss Web Server 3 for RHEL 7RedHattomcat7-0:7.0.70-22.ep7.el7*
Red Hat JBoss Web Server 3 for RHEL 7RedHattomcat8-0:8.0.36-24.ep7.el7*
Red Hat JBoss Web Server 3 for RHEL 7RedHattomcat-native-0:1.2.8-10.redhat_10.ep7.el7*
Apache-log4j1.2Ubuntubionic*
Apache-log4j1.2Ubuntudisco*
Apache-log4j1.2Ubuntueoan*
Apache-log4j1.2Ubuntuesm-apps/bionic*
Apache-log4j1.2Ubuntuesm-apps/xenial*
Apache-log4j1.2Ubuntuesm-infra-legacy/trusty*
Apache-log4j1.2Ubuntutrusty*
Apache-log4j1.2Ubuntutrusty/esm*
Apache-log4j1.2Ubuntuxenial*

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