Skip to content
OpenAdvisories
Medium · 5.9 Public exploit CVE-2020-1971 EUVD-2020-12761GHSA-whf2-mq76-2fhv

EDIPARTYNAME NULL pointer dereference

Published Dec 8, 2020 · Updated May 29, 2026 · Assigned by openssl

Description

The X.509 GeneralName type is a generic type for representing different types of names. One of those name types is known as EDIPartyName. OpenSSL provides a function GENERAL_NAME_cmp which compares different instances of a GENERAL_NAME to see if they are equal or not. This function behaves incorrectly when both GENERAL_NAMEs contain an EDIPARTYNAME. A NULL pointer dereference and a crash may occur leading to a possible denial of service attack. OpenSSL itself uses the GENERAL_NAME_cmp function for two purposes: 1) Comparing CRL distribution point names between an available CRL and a CRL distribution point embedded in an X509 certificate 2) When verifying that a timestamp response token signer matches the timestamp authority name (exposed via the API functions TS_RESP_verify_response and TS_RESP_verify_token) If an attacker can control both items being compared then that attacker could trigger a crash. For example if the attacker can trick a client or server into checking a malicious certificate against a malicious CRL then this may occur. Note that some applications automatically download CRLs based on a URL embedded in a certificate. This checking happens prior to the signatures on the certificate and CRL being verified. OpenSSL's s_server, s_client and verify tools have support for the "-crl_download" option which implements automatic CRL downloading and this attack has been demonstrated to work against those tools. Note that an unrelated bug means that affected versions of OpenSSL cannot parse or construct correct encodings of EDIPARTYNAME. However it is possible to construct a malformed EDIPARTYNAME that OpenSSL's parser will accept and hence trigger this attack. All OpenSSL 1.1.1 and 1.0.2 versions are affected by this issue. Other OpenSSL releases are out of support and have not been checked. Fixed in OpenSSL 1.1.1i (Affected 1.1.1-1.1.1h). Fixed in OpenSSL 1.0.2x (Affected 1.0.2-1.0.2w).

Affected products

VendorProductAffectedFixed
OpenSSL OpenSSL Fixed in OpenSSL 1.1.1i (Affected 1.1.1-1.1.1h), Fixed in OpenSSL 1.0.2x (Affected 1.0.2-1.0.2w) —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 openssl 1.1.1i-1 —
Debian 13 openssl 1.1.1i-1 —
Debian 12 openssl 1.1.1i-1 —
Debian 10 openssl 1.1.1d-0+deb10u4 DSA-4807-1
Debian 9 openssl 1.1.0l-1~deb9u2 DLA-2492-1
Debian 9 openssl1.0 1.0.2u-1~deb9u3 DLA-2493-1
ReleasePackageFixed inAdvisory
Ubuntu 20.04 LTS openssl 1.1.1f-1ubuntu2.1 USN-4662-1
Ubuntu 18.04 LTS openssl 1.1.1-1ubuntu2.1~18.04.7 USN-4662-1
Ubuntu 18.04 LTS openssl1.0 1.0.2n-1ubuntu5.5 USN-4662-1
Ubuntu 16.04 LTS openssl 1.0.2g-1ubuntu4.18 USN-4662-1
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 14.04 LTS openssl 1.0.1f-1ubuntu2.27+esm2 USN-4745-1
ReleasePackageFixed inAdvisory
RHEL 8 openssl +3 1:1.1.1g-12.el8_3 RHSA-2020:5476
RHEL 7 openssl +4 1:1.0.2k-21.el7_9 RHSA-2020:5566
Show 14 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
RHEL 8.2 EUS openssl +3 1:1.1.1c-16.el8_2 RHSA-2020:5422
RHEL 8.1 EUS openssl +3 1:1.1.1c-3.el8_1 RHSA-2020:5637
RHEL 8.0 E4S openssl +3 1:1.1.1-9.el8_0 RHSA-2020:5588
RHEL 7.7 EUS openssl +4 1:1.0.2k-20.el7_7 RHSA-2020:5623
RHEL 7.6 EUS openssl +4 1:1.0.2k-17.el7_6 RHSA-2020:5642
RHEL 7.4 TUS openssl +4 1:1.0.2k-9.el7_4 RHSA-2020:5641
RHEL 7.4 E4S openssl +4 1:1.0.2k-9.el7_4 RHSA-2020:5641
RHEL 7.4 AUS openssl +4 1:1.0.2k-9.el7_4 RHSA-2020:5641
RHEL 7.3 AUS openssl +4 1:1.0.1e-61.el7_3 RHSA-2020:5640
RHEL 7.2 AUS openssl +4 1:1.0.1e-52.el7_2 RHSA-2020:5639
RHEL 6 ELS openssl +3 1.0.1e-59.el6_10 RHSA-2021:0056
Red Hat JBoss Web Server 5 jws5-tomcat +9 9.0.36-9.redhat_8.1.el7jws RHSA-2021:0494
Red Hat JBoss Web Server 5 jws5-tomcat-native 1.2.25-3.redhat_3.el7jws RHSA-2021:0494
Red Hat JBoss Web Server 3 tomcat-native 1.2.23-23.redhat_23.ep7.el7 RHSA-2021:0489
Red Hat JBoss Core Services 1 jbcs-httpd24-brotli +1 1.0.6-40.jbcs.el7 RHSA-2021:0486
Red Hat JBoss Core Services 1 jbcs-httpd24-httpd +6 2.4.37-66.jbcs.el7 RHSA-2021:0486
Red Hat JBoss Core Services 1 jbcs-httpd24-mod_cluster-native 1.3.14-16.Final_redhat_2.jbcs.el7 RHSA-2021:0486
Red Hat JBoss Core Services 1 jbcs-httpd24-mod_http2 1.15.7-12.jbcs.el7 RHSA-2021:0486
Red Hat JBoss Core Services 1 jbcs-httpd24-mod_jk +2 1.2.48-11.redhat_1.jbcs.el7 RHSA-2021:0486
Red Hat JBoss Core Services 1 jbcs-httpd24-mod_md 1:2.0.8-31.jbcs.el7 RHSA-2021:0486
Red Hat JBoss Core Services 1 jbcs-httpd24-mod_security 2.9.2-58.GA.jbcs.el7 RHSA-2021:0486
Red Hat JBoss Core Services 1 jbcs-httpd24-mod_ssl +1 1:2.4.37-66.jbcs.el7 RHSA-2021:0486
Red Hat JBoss Core Services 1 jbcs-httpd24-nghttp2 +1 1.39.2-35.jbcs.el7 RHSA-2021:0486
Red Hat JBoss Core Services 1 jbcs-httpd24-openssl +4 1:1.1.1g-3.jbcs.el7 RHSA-2021:0486
Red Hat JBoss Core Services 1 jbcs-httpd24-openssl-chil 1.0.0-3.jbcs.el7 RHSA-2021:0486
Red Hat JBoss Core Services 1 jbcs-httpd24-openssl-pkcs11 0.4.10-18.jbcs.el7 RHSA-2021:0486
ReleasePackageFixed inAdvisory
SLES 15 SP2 nodejs10 10.23.1-1.30.1 SUSE-SU-2021:0060-1
SLES 15 SP2 nodejs12 12.20.1-4.10.1 SUSE-SU-2021:0062-1
SLES 15 SP2 openssl-1_0_0 1.0.2p-3.34.1 SUSE-SU-2020:3762-1
SLES 15 SP2 openssl-1_1 1.1.1d-11.12.1 SUSE-SU-2020:3721-1
SLES 15 SP1 nodejs10 10.23.1-1.30.1 SUSE-SU-2021:0060-1
SLES 15 SP1 openssl-1_0_0 1.0.2p-3.34.1 SUSE-SU-2020:3762-1
SLES 15 SP1 openssl-1_1 1.1.0i-14.12.1 SUSE-SU-2020:3720-1
SLES 15 nodejs10 10.23.1-1.30.1 SUSE-SU-2021:0060-1
SLES 15 openssl-1_0_0 1.0.2p-3.34.1 SUSE-SU-2020:3762-1
SLES 15 openssl-1_1 1.1.0i-4.54.1 SUSE-SU-2020:3722-1
SLES 12 SP5 openssl-1_0_0 1.0.2p-3.30.1 SUSE-SU-2020:3732-1
SLES 12 SP5 openssl-1_1 1.1.1d-2.27.1 SUSE-SU-2020:3740-1
SLES 12 SP4 openssl-1_0_0 1.0.2p-3.30.1 SUSE-SU-2020:3732-1
SLES 12 SP4 openssl-1_1 1.1.1d-2.27.1 SUSE-SU-2020:3740-1
Show 18 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES 12 SP3 openssl 1.0.2j-60.63.1 SUSE-SU-2020:3763-1
SLES 12 SP2 openssl 1.0.2j-60.63.1 SUSE-SU-2020:3763-1
SLES 12 nodejs10 10.23.1-1.33.1 SUSE-SU-2021:0082-1
SLES 12 nodejs12 12.20.1-1.26.1 SUSE-SU-2021:0068-1
SLES 11 openssl1 1.0.1g-0.58.30.1 SUSE-SU-2020:14560-1
SLES for SAP 15 nodejs10 10.23.1-1.30.1 SUSE-SU-2021:0060-1
SLES for SAP 15 openssl-1_0_0 1.0.2p-3.34.1 SUSE-SU-2020:3762-1
SLES for SAP 15 openssl-1_1 1.1.0i-4.54.1 SUSE-SU-2020:3722-1
SLES for SAP 12 SP5 openssl-1_0_0 1.0.2p-3.30.1 SUSE-SU-2020:3732-1
SLES for SAP 12 SP5 openssl-1_1 1.1.1d-2.27.1 SUSE-SU-2020:3740-1
SLES for SAP 12 SP4 openssl-1_0_0 1.0.2p-3.30.1 SUSE-SU-2020:3732-1
SLES for SAP 12 SP4 openssl-1_1 1.1.1d-2.27.1 SUSE-SU-2020:3740-1
SLES for SAP 12 SP3 openssl 1.0.2j-60.63.1 SUSE-SU-2020:3763-1
SLES for SAP 12 SP2 openssl 1.0.2j-60.63.1 SUSE-SU-2020:3763-1
SLE HPC 15 nodejs10 10.23.1-1.30.1 SUSE-SU-2021:0060-1
SLE HPC 15 openssl-1_1 1.1.0i-4.54.1 SUSE-SU-2020:3722-1
SUSE OpenStack Cloud Crowbar 9 openssl-1_0_0 1.0.2p-3.30.1 SUSE-SU-2020:3732-1
SUSE OpenStack Cloud Crowbar 9 openssl-1_1 1.1.1d-2.27.1 SUSE-SU-2020:3740-1
SUSE OpenStack Cloud Crowbar 8 openssl 1.0.2j-60.63.1 SUSE-SU-2020:3763-1
SUSE OpenStack Cloud 9 openssl-1_0_0 1.0.2p-3.30.1 SUSE-SU-2020:3732-1
SUSE OpenStack Cloud 9 openssl-1_1 1.1.1d-2.27.1 SUSE-SU-2020:3740-1
SUSE OpenStack Cloud 8 openssl 1.0.2j-60.63.1 SUSE-SU-2020:3763-1
SUSE OpenStack Cloud 7 openssl 1.0.2j-60.63.1 SUSE-SU-2020:3763-1
SUSE HPE Helion OpenStack 8 openssl 1.0.2j-60.63.1 SUSE-SU-2020:3763-1
SUSE Enterprise Storage 6 openssl-1_0_0 1.0.2p-3.34.1 SUSE-SU-2020:3762-1
SUSE Enterprise Storage 5 openssl 1.0.2j-60.63.1 SUSE-SU-2020:3763-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed matrix-synapse 1.43.0-1.1 openSUSE-SU-2024:11041-1
openSUSE Tumbleweed openssl-1_0_0 1.0.2u-12.1 openSUSE-SU-2024:12687-1
openSUSE Tumbleweed openssl-1_1 1.1.1l-1.2 openSUSE-SU-2024:11127-1
openSUSE Tumbleweed openssl-3 3.0.1-1.1 openSUSE-SU-2024:11797-1
openSUSE Leap 15.2 nodejs10 10.23.1-lp152.2.9.1 openSUSE-SU-2021:0065-1
openSUSE Leap 15.2 nodejs12 12.20.1-lp152.3.9.1 openSUSE-SU-2021:0064-1
openSUSE Leap 15.2 openssl-1_0_0 1.0.2p-lp152.8.9.1 openSUSE-SU-2020:2236-1
openSUSE Leap 15.2 openssl-1_1 1.1.1d-lp152.7.9.1 openSUSE-SU-2020:2223-1
openSUSE Leap 15.1 nodejs10 10.23.1-lp151.2.15.1 openSUSE-SU-2021:0082-1
openSUSE Leap 15.1 openssl-1_0_0 1.0.2p-lp151.5.20.1 openSUSE-SU-2020:2269-1
openSUSE Leap 15.1 openssl-1_1 1.1.0i-lp151.8.12.2 openSUSE-SU-2020:2245-1
ReleasePackageFixed inAdvisory
Alpine v3.24 libressl 3.1.5-r0 —
Alpine v3.24 openssl 1.1.1i-r0 —
Alpine v3.23 libressl 3.1.5-r0 —
Alpine v3.23 openssl 1.1.1i-r0 —
Alpine v3.22 libressl 3.1.5-r0 —
Alpine v3.22 openssl 1.1.1i-r0 —
Alpine v3.21 libressl 3.1.5-r0 —
Alpine v3.21 openssl 1.1.1i-r0 —
Alpine v3.20 libressl 3.1.5-r0 —
Alpine v3.20 openssl 1.1.1i-r0 —
Show 11 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Alpine v3.19 libressl 3.1.5-r0 —
Alpine v3.19 openssl 1.1.1i-r0 —
Alpine v3.18 libressl 3.1.5-r0 —
Alpine v3.18 openssl +1 1.1.1i-r0 —
Alpine v3.17 libressl 3.1.5-r0 —
Alpine v3.17 openssl +1 1.1.1i-r0 —
Alpine v3.16 libressl 3.1.5-r0 —
Alpine v3.16 openssl +1 1.1.1i-r0 —
Alpine v3.15 libressl 3.1.5-r0 —
Alpine v3.15 openssl +1 1.1.1i-r0 —
Alpine v3.14 libressl 3.1.5-r0 —
Alpine v3.14 openssl 1.1.1i-r0 —
Alpine v3.13 libressl 3.1.5-r0 —
Alpine v3.13 openssl 1.1.1i-r0 —
Alpine v3.12 openssl 1.1.1i-r0 —
Alpine v3.11 openssl 1.1.1i-r0 —
Alpine v3.10 openssl 1.1.1i-r0 —
Alpine v3.9 openssl 1.1.1i-r0 —

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2 edk2-ovmf +4 20200801stable-1.amzn2.0.5 ALAS2-2024-2502
Amazon Linux 2 openssl +4 1:1.0.2k-19.amzn2.0.4 ALAS2-2020-1573
Amazon Linux 2 openssl11 +3 1:1.1.1c-15.amzn2.0.2 ALAS2-2020-1573

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 8 openssl +3 1:1.1.1g-12.el8_3 ELSA-2020-5476

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

  • MBHudson/CVE-2020-1971 ★ 7 · Dec 9, 2020

    CVE-2020-1971 Auto Scan & Remote Exploit Script. Auto Local Scan & Patch Script.

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Advisories 50

References