7.5
HIGH
CVE-2022-4450
"OpenSSL PEM Read BIOS Double Free Vulnerability"
Description

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.

INFO

Published Date :

Feb. 8, 2023, 8:15 p.m.

Last Modified :

Feb. 4, 2024, 9:15 a.m.

Remotely Exploitable :

Yes !

Impact Score :

3.6

Exploitability Score :

3.9
Public PoC/Exploit Available at Github

CVE-2022-4450 has a 10 public PoC/Exploit available at Github. Go to the Public Exploits tab to see the list.

Affected Products

The following products are affected by CVE-2022-4450 vulnerability. Even if cvefeed.io is aware of the exact versions of the products that are affected, the information is not represented in the table below.

ID Vendor Product Action
1 Openssl openssl
1 Stormshield stormshield_network_security
References to Advisories, Solutions, and Tools

Here, you will find a curated list of external links that provide in-depth information, practical solutions, and valuable tools related to CVE-2022-4450.

URL Resource
https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=63bcf189be73a9cc1264059bed6f57974be74a83 Patch Vendor Advisory
https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=bbcf509bd046b34cca19c766bbddc31683d0858b Patch Vendor Advisory
https://security.gentoo.org/glsa/202402-08
https://www.openssl.org/news/secadv/20230207.txt Vendor Advisory

We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).

KernelCare Playground

Updated: 2 months, 3 weeks ago
0 stars 0 fork 0 watcher
Born at : May 7, 2024, 7:56 a.m. This repo has been linked 4 different CVEs too.

None

Dockerfile

Updated: 11 months, 3 weeks ago
0 stars 0 fork 0 watcher
Born at : Sept. 29, 2023, 1:54 p.m. This repo has been linked 8 different CVEs too.

Correlate Security Findings between AWS Inspector, Elastic Container Registry (ECR) and Kubernetes

aws ecr eks inspector security vulnerabilities kubernetes

Go Smarty Dockerfile

Updated: 3 months, 2 weeks ago
4 stars 0 fork 0 watcher
Born at : June 16, 2023, 3:48 p.m. This repo has been linked 9 different CVEs too.

None

Shell Dockerfile

Updated: 1 year, 5 months ago
0 stars 0 fork 0 watcher
Born at : April 9, 2023, 11:49 a.m. This repo has been linked 27 different CVEs too.

Fairwinds Base Image Finder CLI

docker fairwinds-incubator security vulnerabilities

Makefile Go Dockerfile

Updated: 3 months, 1 week ago
34 stars 0 fork 0 watcher
Born at : April 5, 2023, 6:20 p.m. This repo has been linked 7 different CVEs too.

None

Updated: 1 week, 5 days ago
5 stars 0 fork 0 watcher
Born at : Feb. 23, 2023, 5:42 a.m. This repo has been linked 455 different CVEs too.

An NLP-based fuzzing assitance tool for generating valid option combinations.

Python Roff Dockerfile

Updated: 1 week, 3 days ago
40 stars 11 fork 11 watcher
Born at : Feb. 20, 2023, 4:44 p.m. This repo has been linked 30 different CVEs too.

None

Updated: 2 years, 3 months ago
0 stars 0 fork 0 watcher
Born at : June 4, 2022, 7:01 a.m. This repo has been linked 8 different CVEs too.

None

Updated: 2 years, 3 months ago
0 stars 0 fork 0 watcher
Born at : June 2, 2022, 1:11 p.m. This repo has been linked 35 different CVEs too.

Base container images for DAWE DMZ Migration Project

Dockerfile Shell

Updated: 2 years, 3 months ago
0 stars 0 fork 0 watcher
Born at : May 27, 2022, 3:25 a.m. This repo has been linked 27 different CVEs too.

Results are limited to the first 15 repositories due to potential performance issues.

The following list is the news that have been mention CVE-2022-4450 vulnerability anywhere in the article.

The following table lists the changes that have been made to the CVE-2022-4450 vulnerability over time.

Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.

  • CVE Modified by [email protected]

    May. 14, 2024

    Action Type Old Value New Value
  • CVE Modified by [email protected]

    Feb. 04, 2024

    Action Type Old Value New Value
    Added Reference OpenSSL Software Foundation https://security.gentoo.org/glsa/202402-08 [No types assigned]
  • CVE Modified by [email protected]

    Nov. 07, 2023

    Action Type Old Value New Value
    Changed Description 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 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.
  • Modified Analysis by [email protected]

    Jul. 19, 2023

    Action Type Old Value New Value
    Changed Reference Type https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=63bcf189be73a9cc1264059bed6f57974be74a83 No Types Assigned https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=63bcf189be73a9cc1264059bed6f57974be74a83 Patch, Vendor Advisory
    Changed Reference Type https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=bbcf509bd046b34cca19c766bbddc31683d0858b No Types Assigned https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=bbcf509bd046b34cca19c766bbddc31683d0858b Patch, Vendor Advisory
    Added CPE Configuration OR *cpe:2.3:a:stormshield:stormshield_network_security:*:*:*:*:*:*:*:* versions from (including) 4.0.0 up to (excluding) 4.3.16 *cpe:2.3:a:stormshield:stormshield_network_security:*:*:*:*:*:*:*:* versions from (including) 4.4.0 up to (excluding) 4.6.3
  • CVE Modified by [email protected]

    Feb. 24, 2023

    Action Type Old Value New Value
    Added Reference https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=63bcf189be73a9cc1264059bed6f57974be74a83 [No Types Assigned]
    Added Reference https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=bbcf509bd046b34cca19c766bbddc31683d0858b [No Types Assigned]
  • Initial Analysis by [email protected]

    Feb. 18, 2023

    Action Type Old Value New Value
    Added CVSS V3.1 NIST AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
    Changed Reference Type https://www.openssl.org/news/secadv/20230207.txt No Types Assigned https://www.openssl.org/news/secadv/20230207.txt Vendor Advisory
    Added CWE NIST CWE-415
    Added CPE Configuration OR *cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* versions from (including) 1.1.1 up to (excluding) 1.1.1t *cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* versions from (including) 3.0.0 up to (excluding) 3.0.8
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.
CWE - Common Weakness Enumeration

While CVE identifies specific instances of vulnerabilities, CWE categorizes the common flaws or weaknesses that can lead to vulnerabilities. CVE-2022-4450 is associated with the following CWEs:

Common Attack Pattern Enumeration and Classification (CAPEC)

Common Attack Pattern Enumeration and Classification (CAPEC) stores attack patterns, which are descriptions of the common attributes and approaches employed by adversaries to exploit the CVE-2022-4450 weaknesses.

Exploit Prediction

EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days.

0.15 }} 0.02%

score

0.52102

percentile

CVSS31 - Vulnerability Scoring System
Attack Vector
Attack Complexity
Privileges Required
User Interaction
Scope
Confidentiality
Integrity
Availability