Double free after calling PEM_read_bio_ex
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| OpenSSL | OpenSSL | unaffected |
|
Configuration 1 [-]
|
Configuration 2 [-]
|
| Package | CPE | Advisory | Released Date |
|---|---|---|---|
| JBCS httpd 2.4.51.sp2 | |||
| openssl | cpe:/a:redhat:jboss_core_services:1 | RHSA-2023:3355 | 2023-06-05T00:00:00Z |
| JBoss Core Services for RHEL 8 | |||
| jbcs-httpd24-openssl-1:1.1.1k-14.el8jbcs | cpe:/a:redhat:jboss_core_services:1::el8 | RHSA-2023:3354 | 2023-06-05T00:00:00Z |
| JBoss Core Services on RHEL 7 | |||
| jbcs-httpd24-openssl-1:1.1.1k-14.el7jbcs | cpe:/a:redhat:jboss_core_services:1::el7 | RHSA-2023:3354 | 2023-06-05T00:00:00Z |
| Red Hat Enterprise Linux 8 | |||
| edk2-0:20220126gitbb1bba3d77-4.el8 | cpe:/a:redhat:enterprise_linux:8 | RHSA-2023:2932 | 2023-05-16T00:00:00Z |
| openssl-1:1.1.1k-9.el8_7 | cpe:/o:redhat:enterprise_linux:8 | RHSA-2023:1405 | 2023-03-22T00:00:00Z |
| Red Hat Enterprise Linux 8.6 Extended Update Support | |||
| openssl-1:1.1.1k-9.el8_6 | cpe:/o:redhat:rhel_eus:8.6 | RHSA-2023:3408 | 2023-05-31T00:00:00Z |
| Red Hat Enterprise Linux 9 | |||
| openssl-1:3.0.1-47.el9_1 | cpe:/a:redhat:enterprise_linux:9 | RHSA-2023:0946 | 2023-02-28T00:00:00Z |
| edk2-0:20221207gitfff6d81270b5-9.el9_2 | cpe:/a:redhat:enterprise_linux:9 | RHSA-2023:2165 | 2023-05-09T00:00:00Z |
| openssl-1:3.0.1-47.el9_1 | cpe:/o:redhat:enterprise_linux:9 | RHSA-2023:0946 | 2023-02-28T00:00:00Z |
| Red Hat Enterprise Linux 9.0 Extended Update Support | |||
| openssl-1:3.0.1-46.el9_0 | cpe:/a:redhat:rhel_eus:9.0 | RHSA-2023:1199 | 2023-03-14T00:00:00Z |
| Red Hat JBoss Web Server 5 | |||
| openssl | cpe:/a:redhat:jboss_enterprise_web_server:5.7 | RHSA-2023:3421 | 2023-06-05T00:00:00Z |
| Red Hat JBoss Web Server 5.7 on RHEL 7 | |||
| jws5-tomcat-native-0:1.2.31-14.redhat_14.el7jws | cpe:/a:redhat:jboss_enterprise_web_server:5.7::el7 | RHSA-2023:3420 | 2023-06-05T00:00:00Z |
| Red Hat JBoss Web Server 5.7 on RHEL 8 | |||
| jws5-tomcat-native-0:1.2.31-14.redhat_14.el8jws | cpe:/a:redhat:jboss_enterprise_web_server:5.7::el8 | RHSA-2023:3420 | 2023-06-05T00:00:00Z |
| Red Hat JBoss Web Server 5.7 on RHEL 9 | |||
| jws5-tomcat-native-0:1.2.31-14.redhat_14.el9jws | cpe:/a:redhat:jboss_enterprise_web_server:5.7::el9 | RHSA-2023:3420 | 2023-06-05T00:00:00Z |
No data available yet.
| Source | ID | Title |
|---|---|---|
Debian DLA |
DLA-3325-1 | openssl security update |
Debian DSA |
DSA-5343-1 | openssl security update |
EUVD |
EUVD-2023-0796 | 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. |
Github GHSA |
GHSA-v5w6-wcm8-jm4q | openssl-src contains Double free after calling `PEM_read_bio_ex` |
Ubuntu USN |
USN-5844-1 | OpenSSL vulnerabilities |
Ubuntu USN |
USN-6564-1 | Node.js vulnerabilities |
Ubuntu USN |
USN-7894-1 | EDK II vulnerabilities |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: 28.6% (28.590% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| 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. |