CVE-2020-1967 - NULL Pointer Dereference

Severity

75%

Complexity

39%

Confidentiality

60%

Server or client applications that call the SSL_check_chain() function during or after a TLS 1.3 handshake may crash due to a NULL pointer dereference as a result of incorrect handling of the "signature_algorithms_cert" TLS extension. The crash occurs if an invalid or unrecognised signature algorithm is received from the peer. This could be exploited by a malicious peer in a Denial of Service attack. OpenSSL version 1.1.1d, 1.1.1e, and 1.1.1f are affected by this issue. This issue did not affect OpenSSL versions prior to 1.1.1d. Fixed in OpenSSL 1.1.1g (Affected 1.1.1d-1.1.1f).

Server or client applications that call the SSL_check_chain() function during or after a TLS 1.3 handshake may crash due to a NULL pointer dereference as a result of incorrect handling of the "signature_algorithms_cert" TLS extension. The crash occurs if an invalid or unrecognised signature algorithm is received from the peer. This could be exploited by a malicious peer in a Denial of Service attack. OpenSSL version 1.1.1d, 1.1.1e, and 1.1.1f are affected by this issue. This issue did not affect OpenSSL versions prior to 1.1.1d. Fixed in OpenSSL 1.1.1g (Affected 1.1.1d-1.1.1f).

CVSS 3.1 Base Score 7.5. CVSS Attack Vector: network. CVSS Attack Complexity: low. CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H).

CVSS 2.0 Base Score 5. CVSS Attack Vector: network. CVSS Attack Complexity: low. CVSS Vector: (AV:N/AC:L/Au:N/C:N/I:N/A:P).

Demo Examples

NULL Pointer Dereference

CWE-476

While there are no complete fixes aside from conscientious programming, the following steps will go a long way to ensure that NULL pointer dereferences do not occur.


               
}
/* make use of pointer1 *//* ... */

If you are working with a multithreaded or otherwise asynchronous environment, ensure that proper locking APIs are used to lock before the if statement; and unlock when it has finished.

NULL Pointer Dereference

CWE-476

This example takes an IP address from a user, verifies that it is well formed and then looks up the hostname and copies it into a buffer.


               
}
strcpy(hostname, hp->h_name);/*routine that ensures user_supplied_addr is in the right format for conversion */

If an attacker provides an address that appears to be well-formed, but the address does not resolve to a hostname, then the call to gethostbyaddr() will return NULL. Since the code does not check the return value from gethostbyaddr (CWE-252), a NULL pointer dereference would then occur in the call to strcpy().

Note that this example is also vulnerable to a buffer overflow (see CWE-119).

NULL Pointer Dereference

CWE-476

In the following code, the programmer assumes that the system always has a property named "cmd" defined. If an attacker can control the program's environment so that "cmd" is not defined, the program throws a NULL pointer exception when it attempts to call the trim() method.


               
cmd = cmd.trim();

NULL Pointer Dereference

CWE-476

This application has registered to handle a URL when sent an intent:


               
}......
}
}
int length = URL.length();
...

The application assumes the URL will always be included in the intent. When the URL is not present, the call to getStringExtra() will return null, thus causing a null pointer exception when length() is called.

Overview

First reported 4 years ago

2020-04-21 14:15:00

Last updated 4 years ago

2020-12-22 17:07:00

Affected Software

OpenSSL Project OpenSSL

Debian Linux 10

10

Fedora 30

30

Fedora 32

32

FreeBSD FreeBSD 12.1

12.1

Debian Linux 9.0

9.0

Fedora 31

31

Oracle Enterprise Manager Ops Center 12.4.0

12.4.0

Oracle MySQL -

Oracle MySQL Connectors

Oracle PeopleSoft Enterprise PeopleTools 8.56

8.56

Oracle PeopleSoft Enterprise PeopleTools 8.57

8.57

Oracle PeopleSoft Enterprise PeopleTools 8.58

8.58

NetApp Active IQ Unified Manager for Windows

windows

NetApp Active IQ Unified Manager for VMware vSphere

vmware_vsphere

OpenSUSE Leap 15.1

15.1

References

20200501 CVE-2020-1967: proving sigalg != NULL

[oss-security] 20200422 [CVE-2020-1967] OpenSSL 1.1.1d+ Segmentation fault in SSL_check_chain

Mailing List, Third Party Advisory

https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=eb563247aef3e83dda7679c43f9649270462e5b1

Mailing List, Patch, Vendor Advisory

https://github.com/irsl/CVE-2020-1967

https://kb.pulsesecure.net/articles/Pulse_Security_Advisories/SA44440

Third Party Advisory

[tomcat-dev] 20200422 Re: Time for Tomcat Native 1.2.24?

Mailing List, Third Party Advisory

[tomcat-dev] 20200423 Re: Time for Tomcat Native 1.2.24?

Mailing List, Third Party Advisory

[tomcat-dev] 20200422 Time for Tomcat Native 1.2.24?

Mailing List, Third Party Advisory

FEDORA-2020-da2d1ef2d7

Mailing List, Third Party Advisory

FEDORA-2020-fcc91a28e8

Mailing List, Third Party Advisory

FreeBSD-SA-20:11

Patch, Third Party Advisory

GLSA-202004-10

Patch, Third Party Advisory

https://security.netapp.com/advisory/ntap-20200424-0003/

Third Party Advisory

DSA-4661

Third Party Advisory

https://www.openssl.org/news/secadv/20200421.txt

Vendor Advisory

https://www.synology.com/security/advisory/Synology_SA_20_05_OpenSSL

Third Party Advisory

https://www.tenable.com/security/tns-2020-03

Third Party Advisory

http://packetstormsecurity.com/files/157527/OpenSSL-signature_algorithms_cert-Denial-Of-Service.html

FEDORA-2020-d7b29838f6

https://www.synology.com/security/advisory/Synology_SA_20_05

https://www.tenable.com/security/tns-2020-04

openSUSE-SU-2020:0933

openSUSE-SU-2020:0945

https://www.oracle.com/security-alerts/cpujul2020.html

https://security.netapp.com/advisory/ntap-20200717-0004/

https://www.oracle.com/security-alerts/cpuoct2020.html

https://www.tenable.com/security/tns-2020-11

openSUSE-SU-2020:0933

Mailing List, Third Party Advisory

openSUSE-SU-2020:0945

Mailing List, Third Party Advisory

http://packetstormsecurity.com/files/157527/OpenSSL-signature_algorithms_cert-Denial-Of-Service.html

Third Party Advisory, VDB Entry

20200501 CVE-2020-1967: proving sigalg != NULL

Mailing List, Third Party Advisory

https://github.com/irsl/CVE-2020-1967

Exploit, Third Party Advisory

FEDORA-2020-da2d1ef2d7

Third Party Advisory

FEDORA-2020-d7b29838f6

Third Party Advisory

FEDORA-2020-fcc91a28e8

Third Party Advisory

GLSA-202004-10

Third Party Advisory

https://security.netapp.com/advisory/ntap-20200717-0004/

Third Party Advisory

https://www.oracle.com/security-alerts/cpujul2020.html

Third Party Advisory

https://www.oracle.com/security-alerts/cpuoct2020.html

Third Party Advisory

https://www.synology.com/security/advisory/Synology_SA_20_05

Third Party Advisory

https://www.tenable.com/security/tns-2020-04

Third Party Advisory

https://www.tenable.com/security/tns-2020-11

Third Party Advisory

Stay updated

ExploitPedia is constantly evolving. Sign up to receive a notification when we release additional functionality.

Get in touch

If you'd like to report a bug or have any suggestions for improvements then please do get in touch with us using this form. We will get back to you as soon as we can.