CVE-2022-4450CWE-415

CVE-2022-4450

High · published February 9, 2023

CVSS v3.1
7.5
EPSS
29%
Percentile
98.1
In the wild
Unconfirmed
What it is

The function PEM_read_bio_ex() reads a PEM file from a BIO and parses and

decodes the "name" (e.g. "CERTIFICATE"), any header data and the payload data.

If the function succeeds then the "name_out", "header" and "data" arguments are

populated with pointers to buffers containing the relevant decoded data. The

caller is responsible for freeing those buffers. It is possible to construct a

PEM file that results in 0 bytes of payload data. In this case PEM_read_bio_ex()

will return a failure code but will populate the header argument with a pointer

to a buffer that has already been freed. If the caller also frees this buffer

then a double free will occur. This will most likely lead to a crash. This

could be exploited by an attacker who has the ability to supply malicious PEM

files for parsing to achieve a denial of service attack.

The functions PEM_read_bio() and PEM_read() are simple wrappers around

PEM_read_bio_ex() and therefore these functions are also directly affected.

These functions are also called indirectly by a number of other OpenSSL

functions including PEM_X509_INFO_read_bio_ex() and

SSL_CTX_use_serverinfo_file() which are also vulnerable. Some OpenSSL internal

uses of these functions are not vulnerable because the caller does not free the

header argument if PEM_read_bio_ex() returns a failure code. These locations

include the PEM_read_bio_TYPE() functions as well as the decoders introduced in

OpenSSL 3.0.

The OpenSSL asn1parse command line application is also impacted by this issue.

The record
Technical detail
CVSS v3.1
7.5 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.28590 · 98.1th percentile
Weakness
CWE-415 · Double Free
Published
2023-02-09T01:15Z
Affected products (4)
ProductVersionsFixed in
openssl/openssl≥ 1.1.1, < 1.1.1t1.1.1t
openssl/openssl≥ 3.0.0, < 3.0.83.0.8
stormshield/stormshield_network_security≥ 4.0.0, < 4.3.164.3.16
stormshield/stormshield_network_security≥ 4.4.0, < 4.6.34.6.3
References (20)
https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=63bcf189be73a9cc1264059bed6f57974be74a83 · [email protected]https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=bbcf509bd046b34cca19c766bbddc31683d0858b · [email protected]https://security.gentoo.org/glsa/202402-08 · [email protected]https://www.openssl.org/news/secadv/20230207.txt · [email protected]https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=63bcf189be73a9cc1264059bed6f57974be74a83 · af854a3a-2127-422b-91ae-364da2661108https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=bbcf509bd046b34cca19c766bbddc31683d0858b · af854a3a-2127-422b-91ae-364da2661108https://psirt.global.sonicwall.com/vuln-detail/SNWLID-2023-0003 · af854a3a-2127-422b-91ae-364da2661108https://security.gentoo.org/glsa/202402-08 · af854a3a-2127-422b-91ae-364da2661108https://www.openssl.org/news/secadv/20230207.txt · af854a3a-2127-422b-91ae-364da2661108https://cert-portal.siemens.com/productcert/html/ssa-203374.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5ehttps://cert-portal.siemens.com/productcert/html/ssa-337522.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5ehttps://cert-portal.siemens.com/productcert/html/ssa-398330.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5ehttps://cert-portal.siemens.com/productcert/html/ssa-556635.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5ehttps://cert-portal.siemens.com/productcert/html/ssa-561322.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5ehttps://cert-portal.siemens.com/productcert/html/ssa-625862.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5ehttps://cert-portal.siemens.com/productcert/html/ssa-699386.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5ehttps://cert-portal.siemens.com/productcert/html/ssa-769027.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5ehttps://cert-portal.siemens.com/productcert/html/ssa-794697.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5ehttps://cert-portal.siemens.com/productcert/html/ssa-879734.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5ehttps://cert-portal.siemens.com/productcert/html/ssa-943925.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
EPSS history
Timeline
  • 08 FEB 19:04Z
    Double free after calling PEM_read_bio_ex
    cvelistv5