Double free after calling PEM_read_bio_ex
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.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
A double free vulnerability in OpenSSL's PEM_read_bio_ex() function from processing specially crafted PEM files with zero-length payload data leading to denial of service.
Vulnerability
The function PEM_read_bio_ex() in OpenSSL reads and decodes PEM files. When processing a specially crafted PEM file with zero bytes of payload data, the function returns a failure code but frees the header buffer and then assigns the freed pointer to the header argument. If the caller then frees the header buffer, a double free occurs, typically resulting in a crash [1][2].
Exploitation
An attacker can exploit this by supplying a malicious PEM file to any application that parses untrusted PEM data using vulnerable functions. Directly affected functions include PEM_read_bio(), PEM_read(), and indirectly PEM_X509_INFO_read_bio_ex(), SSL_CTX_use_serverinfo_file(), and the asn1parse command line tool [2]. The attacker does not need authentication; only the ability to deliver a crafted PEM file is required.
Impact
Successful exploitation leads to a denial of service via application crash. While the vulnerability is classified as moderate severity, it can be triggered remotely if the application processes PEM data from untrusted sources.
Mitigation
OpenSSL has released patches: version 1.1.1t, 3.0.8, and for premium customers 1.0.2zg [1][3]. Users should upgrade to these or later versions. The Gentoo GLSA also recommends upgrading to >=dev-libs/openssl-3.0.10 [4].
AI Insight generated on May 20, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
openssl-srccrates.io | < 111.25.0 | 111.25.0 |
openssl-srccrates.io | >= 300.0.0, < 300.0.12 | 300.0.12 |
Affected products
74- osv-coords73 versionspkg:apk/chainguard/libcrypto3pkg:apk/chainguard/libssl3pkg:apk/chainguard/opensslpkg:apk/chainguard/openssl-configpkg:apk/chainguard/openssl-dbgpkg:apk/chainguard/openssl-devpkg:apk/chainguard/openssl-docpkg:apk/chainguard/openssl-engine-afalgpkg:apk/chainguard/openssl-engine-capipkg:apk/chainguard/openssl-engine-loader-atticpkg:apk/chainguard/openssl-engine-padlockpkg:apk/chainguard/openssl-provider-fipspkg:apk/chainguard/openssl-provider-legacypkg:apk/chainguard/ruby-3.1pkg:apk/chainguard/ruby-3.1-basepkg:apk/chainguard/ruby-3.1-base-devpkg:apk/chainguard/ruby-3.1-devpkg:apk/chainguard/ruby-3.1-docpkg:apk/wolfi/libcrypto3pkg:apk/wolfi/libssl3pkg:apk/wolfi/opensslpkg:apk/wolfi/openssl-configpkg:apk/wolfi/openssl-dbgpkg:apk/wolfi/openssl-devpkg:apk/wolfi/openssl-docpkg:apk/wolfi/openssl-engine-afalgpkg:apk/wolfi/openssl-engine-capipkg:apk/wolfi/openssl-engine-loader-atticpkg:apk/wolfi/openssl-engine-padlockpkg:apk/wolfi/openssl-provider-legacypkg:apk/wolfi/ruby-3.1pkg:apk/wolfi/ruby-3.1-basepkg:apk/wolfi/ruby-3.1-base-devpkg:apk/wolfi/ruby-3.1-devpkg:apk/wolfi/ruby-3.1-docpkg:cargo/openssl-srcpkg:rpm/almalinux/edk2-aarch64pkg:rpm/almalinux/edk2-ovmfpkg:rpm/almalinux/edk2-toolspkg:rpm/almalinux/edk2-tools-docpkg:rpm/almalinux/opensslpkg:rpm/almalinux/openssl-develpkg:rpm/almalinux/openssl-libspkg:rpm/almalinux/openssl-perlpkg:rpm/opensuse/openssl-1_1&distro=openSUSE%20Leap%2015.4pkg:rpm/opensuse/openssl-1_1&distro=openSUSE%20Leap%20Micro%205.2pkg:rpm/opensuse/openssl-1_1&distro=openSUSE%20Leap%20Micro%205.3pkg:rpm/opensuse/openssl-3&distro=openSUSE%20Leap%2015.4pkg:rpm/suse/openssl-1_1&distro=SUSE%20Enterprise%20Storage%207pkg:rpm/suse/openssl-1_1&distro=SUSE%20Enterprise%20Storage%207.1pkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP2-LTSSpkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP3-ESPOSpkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP3-LTSSpkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20Micro%205.1pkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20Micro%205.2pkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20Micro%205.3pkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Basesystem%2015%20SP4pkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20Real%20Time%2015%20SP3pkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20Server%2012%20SP4-LTSSpkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20Server%2012%20SP5pkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP2-LTSSpkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP3-LTSSpkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2012%20SP4pkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2012%20SP5pkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2015%20SP2pkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2015%20SP3pkg:rpm/suse/openssl-1_1&distro=SUSE%20Linux%20Enterprise%20Software%20Development%20Kit%2012%20SP5pkg:rpm/suse/openssl-1_1&distro=SUSE%20Manager%20Proxy%204.2pkg:rpm/suse/openssl-1_1&distro=SUSE%20Manager%20Retail%20Branch%20Server%204.2pkg:rpm/suse/openssl-1_1&distro=SUSE%20Manager%20Server%204.2pkg:rpm/suse/openssl-1_1&distro=SUSE%20OpenStack%20Cloud%209pkg:rpm/suse/openssl-1_1&distro=SUSE%20OpenStack%20Cloud%20Crowbar%209pkg:rpm/suse/openssl-3&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Basesystem%2015%20SP4
< 3.1.0-r0+ 72 more
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.0.8-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 3.1.0-r0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 111.25.0
- (no CPE)range: < 20221207gitfff6d81270b5-9.el9_2
- (no CPE)range: < 20221207gitfff6d81270b5-9.el9_2
- (no CPE)range: < 20221207gitfff6d81270b5-9.el9_2
- (no CPE)range: < 20221207gitfff6d81270b5-9.el9_2
- (no CPE)range: < 1:3.0.1-47.el9_1
- (no CPE)range: < 1:3.0.1-47.el9_1
- (no CPE)range: < 1:3.0.1-47.el9_1
- (no CPE)range: < 1:3.0.1-47.el9_1
- (no CPE)range: < 1.1.1l-150400.7.22.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1l-150400.7.22.1
- (no CPE)range: < 3.0.1-150400.4.17.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1l-150400.7.22.1
- (no CPE)range: < 1.1.1l-150400.7.22.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1d-2.75.1
- (no CPE)range: < 1.1.1d-2.75.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1d-2.75.1
- (no CPE)range: < 1.1.1d-2.75.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1d-2.75.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1d-150200.11.57.1
- (no CPE)range: < 1.1.1d-2.75.1
- (no CPE)range: < 1.1.1d-2.75.1
- (no CPE)range: < 3.0.1-150400.4.17.1
- Range: 3.0.0
Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
8- git.openssl.org/gitweb/ghsapatchWEB
- git.openssl.org/gitweb/ghsapatchWEB
- github.com/advisories/GHSA-v5w6-wcm8-jm4qghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2022-4450ghsaADVISORY
- www.openssl.org/news/secadv/20230207.txtghsavendor-advisoryWEB
- psirt.global.sonicwall.com/vuln-detail/SNWLID-2023-0003ghsaWEB
- rustsec.org/advisories/RUSTSEC-2023-0010.htmlghsaWEB
- security.gentoo.org/glsa/202402-08ghsaWEB
News mentions
0No linked articles in our index yet.