Bug 1889486 (CVE-2019-14584)

Summary: CVE-2019-14584 edk2: NULL pointer dereference in AuthenticodeVerify()
Product: [Other] Security Response Reporter: Guilherme de Almeida Suckevicz <gsuckevi>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: berrange, crobinso, kraxel, lersek, pbonzini, philmd, security-response-team, virt-maint, virt-maint
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1889877, 1889878, 1910517, 1890621    
Bug Blocks: 1889487    

Description Guilherme de Almeida Suckevicz 2020-10-19 18:43:26 UTC
AuthenticodeVerify() calls OpenSSLs d2i_PKCS7() API to parse asn encoded signed authenticode pkcs#7 data. when this successfully returns, a type check is done by calling PKCS7_type_is_signed() and then Pkcs7->d.sign->contents->type is used. It is possible to construct an asn1 blob that successfully decodes and have d2i_PKCS7() return a valid pointer and have PKCS7_type_is_signed() also return success  but have Pkcs7->d.sign be a NULL pointer.

Reference:
https://bugzilla.tianocore.org/show_bug.cgi?id=1914

Comment 1 Guilherme de Almeida Suckevicz 2020-10-20 19:06:52 UTC
Created edk2 tracking bugs for this issue:

Affects: epel-all [bug 1889878]
Affects: fedora-all [bug 1889877]

Comment 2 Laszlo Ersek 2020-10-21 12:42:19 UTC
Upstream commit 26442d11e620 ("CryptoPkg/BaseCryptLib: fix NULL dereference (CVE-2019-14584)", 2020-10-21).

Comment 3 Riccardo Schirone 2020-10-21 15:30:08 UTC
Upstream patch:
https://github.com/tianocore/edk2/commit/26442d11e620a9e81c019a24a4ff38441c64ba10