{"id":"RUSTSEC-2023-0010","revision":"c33ba255bde04a43970d4a5d7267ec3d","records":[{"revision":"c33ba255bde04a43970d4a5d7267ec3d","observedAt":"2026-10-24T13:19:54.901+00:00","statement":{"source":"osv","id":"RUSTSEC-2023-0010","aliases":["CVE-2022-4450","GHSA-v5w6-wcm8-jm4q"],"title":"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\ndecodes the \"name\" (e.g. \"CERTIFICATE\"), any header data and the payload data.\nIf the function succeeds then the \"name_out\", \"header\" and \"data\" arguments are\npopulated with pointers to buffers containing the relevant decoded data. The\ncaller is responsible for freeing those buffers. It is possible to construct a\nPEM file that results in 0 bytes of payload data. In this case `PEM_read_bio_ex()`\nwill return a failure code but will populate the header argument with a pointer\nto a buffer that has already been freed. If the caller also frees this buffer\nthen a double free will occur. This will most likely lead to a crash. This\ncould be exploited by an attacker who has the ability to supply malicious PEM\nfiles for parsing to achieve a denial of service attack.\n\nThe functions `PEM_read_bio()` and `PEM_read()` are simple wrappers around\n`PEM_read_bio_ex()` and therefore these functions are also directly affected.\n\nThese functions are also called indirectly by a number of other OpenSSL\nfunctions including `PEM_X509_INFO_read_bio_ex()` and\n`SSL_CTX_use_serverinfo_file()` which are also vulnerable. Some OpenSSL internal\nuses of these functions are not vulnerable because the caller does not free the\nheader argument if `PEM_read_bio_ex()` returns a failure code. These locations\ninclude the `PEM_read_bio_TYPE()` functions as well as the decoders introduced in\nOpenSSL 3.0.","state":0,"publishedAt":"2023-02-07T12:00:00+00:00","modifiedAt":"2023-11-08T04:10:48.273182+00:00","affected":[{"ecosystem":"crates.io","name":"openssl-src","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0.0.0-0"},{"kind":"fixed","version":"111.25.0"},{"kind":"introduced","version":"300.0.0"},{"kind":"fixed","version":"300.0.12"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[],"references":["https://crates.io/crates/openssl-src","https://rustsec.org/advisories/RUSTSEC-2023-0010.html","https://www.openssl.org/news/secadv/20230207.txt"],"sourceUrl":"https://osv.dev/vulnerability/RUSTSEC-2023-0010","license":"OSV · upstream source license applies","key":"osv:RUSTSEC-2023-0010","identifiers":["RUSTSEC-2023-0010","CVE-2022-4450","GHSA-v5w6-wcm8-jm4q"]},"retained":false,"historicalAffected":[]}],"coverage":[]}