Issue summary: Calling PKCS12_get_friendlyname() function on a maliciously crafted PKCS#12 file with a BMPString (UTF-16BE) friendly name containing non-ASCII BMP code point can trigger a one byte write before the allocated buffer.
Impact summary: The out-of-bounds write can cause a memory corruption which can have various consequences including a Denial of Service.
The OPENSSL_uni2utf8() function performs a two-pass conversion of a PKCS#12 BMPString (UTF-16BE) to UTF-8. In the second pass, when emitting UTF-8 bytes, the helper function bmp_to_utf8() incorrectly forwards the remaining UTF-16 source byte count as the destination buffer capacity to UTF8_putc(). For BMP code points above U+07FF, UTF-8 requires three bytes, but the forwarded capacity can be just two bytes. UTF8_putc() then returns -1, and this negative value is added to the output length without validation, causing the length to become negative. The subsequent trailing NUL byte is then written at a negative offset, causing write outside of heap allocated buffer.
The vulnerability is reachable via the public PKCS12_get_friendlyname() API when parsing attacker-controlled PKCS#12 files. While PKCS12_parse() uses a different code path that avoids this issue, PKCS12_get_friendlyname() directly invokes the vulnerable function. Exploitation requires an attacker to provide a malicious PKCS#12 file to be parsed by the application and the attacker can just trigger a one zero byte write before the allocated buffer. For that reason the issue was assessed as Low severity according to our Security Policy.
The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the PKCS#12 implementation is outside the OpenSSL FIPS module boundary.
OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0 and 1.1.1 are vulnerable to this issue.
OpenSSL 1.0.2 is not affected by this issue.
{
"cna_assigner": "openssl",
"cwe_ids": [
"CWE-787"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/69xxx/CVE-2025-69419.json"
}{
"extracted_events": [
{
"cpe": "cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "1.1.1"
},
{
"fixed": "1.1.1ze"
}
],
"source": "CPE_RANGE"
}
]
}
{
"extracted_events": [
{
"cpe": "cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "1.1.1"
},
{
"fixed": "1.1.1ze"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "3.0.0"
},
{
"fixed": "3.0.19"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "3.3.0"
},
{
"fixed": "3.3.6"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "3.4.0"
},
{
"fixed": "3.4.4"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "3.5.0"
},
{
"fixed": "3.5.5"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "3.6.0"
},
{
"fixed": "3.6.1"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "41be0f216404f14457bbf3b9cc488dba60b49296"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "7e9cac9832e4705b91987c2474ed06a37a93cecb"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "a26a90d38edec3748566129d824e664b54bee2e2"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "cda12de3bc0e333ea8d2c6fd15001dbdaf280015"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "ff628933755075446bca8307e8417c14d164b535"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-69419.json"
[
{
"deprecated": false,
"digest": {
"line_hashes": [
"156983863095094548535338968955595812811",
"153238992315641395177665058487653225478",
"172687070745160318315224274035905216378",
"27082460365194793330044320421038082754",
"4460307226245998230485764046985149278"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-00da600a",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/7e9cac9832e4705b91987c2474ed06a37a93cecb",
"target": {
"file": "crypto/asn1/a_strex.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "32008225284128195658040746214741547285",
"length": 1659
},
"id": "CVE-2025-69419-0148fae5",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/ff628933755075446bca8307e8417c14d164b535",
"target": {
"file": "crypto/asn1/a_strex.c",
"function": "do_buf"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"156983863095094548535338968955595812811",
"153238992315641395177665058487653225478",
"172687070745160318315224274035905216378",
"27082460365194793330044320421038082754",
"4460307226245998230485764046985149278"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-0213822e",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/cda12de3bc0e333ea8d2c6fd15001dbdaf280015",
"target": {
"file": "crypto/asn1/a_strex.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "32008225284128195658040746214741547285",
"length": 1659
},
"id": "CVE-2025-69419-052d196a",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/a26a90d38edec3748566129d824e664b54bee2e2",
"target": {
"file": "crypto/asn1/a_strex.c",
"function": "do_buf"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "269274151202672217402838615120421249016",
"length": 733
},
"id": "CVE-2025-69419-09d18a1d",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/7e9cac9832e4705b91987c2474ed06a37a93cecb",
"target": {
"file": "crypto/pkcs12/p12_utl.c",
"function": "OPENSSL_uni2utf8"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"8197119098003686502323758297771920675",
"123570346674886058532594910452998387419",
"330848004861723585376374210954232885669",
"125253330896326929862487700185368321824"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-0b816448",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/ff628933755075446bca8307e8417c14d164b535",
"target": {
"file": "crypto/pkcs12/p12_utl.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "42797208737688127763066522181332281160",
"length": 507
},
"id": "CVE-2025-69419-17161750",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/9ad69b994ae7c73ba06d9f75efd2625102de814c",
"target": {
"file": "test/ec_internal_test.c",
"function": "setup_tests"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "32008225284128195658040746214741547285",
"length": 1659
},
"id": "CVE-2025-69419-1a2ca58d",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/41be0f216404f14457bbf3b9cc488dba60b49296",
"target": {
"file": "crypto/asn1/a_strex.c",
"function": "do_buf"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"8197119098003686502323758297771920675",
"123570346674886058532594910452998387419",
"330848004861723585376374210954232885669",
"125253330896326929862487700185368321824"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-20d57666",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/a26a90d38edec3748566129d824e664b54bee2e2",
"target": {
"file": "crypto/pkcs12/p12_utl.c"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"156983863095094548535338968955595812811",
"153238992315641395177665058487653225478",
"172687070745160318315224274035905216378",
"27082460365194793330044320421038082754",
"4460307226245998230485764046985149278"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-22e5ee54",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/ff628933755075446bca8307e8417c14d164b535",
"target": {
"file": "crypto/asn1/a_strex.c"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"181089593633653152713225066183099693737",
"99982428748013804425025524034573602503",
"330848004861723585376374210954232885669",
"125253330896326929862487700185368321824"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-234e393b",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/41be0f216404f14457bbf3b9cc488dba60b49296",
"target": {
"file": "crypto/pkcs12/p12_utl.c"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"230361427007416664995616424352791763469",
"68454496777232705137616949383570055801",
"174227485603324825134703660955423564225",
"306374039697804480350160125378658725435",
"223787537721903344733141597182001711142",
"305852724676774806958748002571762917320",
"61902118637910596077004663207701223681",
"278724473247779637198513168995006009135",
"150804929727413209120953746872414715465",
"166774358343717215765245239236385866693",
"116293081894868411264108492273509366961",
"326496170417124709669304286305887789679",
"278306348133167756990680493182074324125",
"189649085256091224929149730235838635518",
"82945606976757935725900546138315651129",
"136187505923069729147869676886657763243",
"233447734599456461300796481665382809870",
"116930820689846462220149337293161556595",
"153181275943870954612030432229689150702",
"65985025876624501603393736976041980125"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-3349f255",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/9ad69b994ae7c73ba06d9f75efd2625102de814c",
"target": {
"file": "crypto/bn/bn_gf2m.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "269274151202672217402838615120421249016",
"length": 733
},
"id": "CVE-2025-69419-3fc51a81",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/a26a90d38edec3748566129d824e664b54bee2e2",
"target": {
"file": "crypto/pkcs12/p12_utl.c",
"function": "OPENSSL_uni2utf8"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "269274151202672217402838615120421249016",
"length": 733
},
"id": "CVE-2025-69419-45d0ac02",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/cda12de3bc0e333ea8d2c6fd15001dbdaf280015",
"target": {
"file": "crypto/pkcs12/p12_utl.c",
"function": "OPENSSL_uni2utf8"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "269274151202672217402838615120421249016",
"length": 733
},
"id": "CVE-2025-69419-4eb7055c",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/ff628933755075446bca8307e8417c14d164b535",
"target": {
"file": "crypto/pkcs12/p12_utl.c",
"function": "OPENSSL_uni2utf8"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "30673062630639656303483208802482655434",
"length": 494
},
"id": "CVE-2025-69419-4f7f516c",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/9ad69b994ae7c73ba06d9f75efd2625102de814c",
"target": {
"file": "crypto/bn/bn_gf2m.c",
"function": "BN_GF2m_poly2arr"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"8197119098003686502323758297771920675",
"123570346674886058532594910452998387419",
"330848004861723585376374210954232885669",
"125253330896326929862487700185368321824"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-503971c1",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/cda12de3bc0e333ea8d2c6fd15001dbdaf280015",
"target": {
"file": "crypto/pkcs12/p12_utl.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "194066805760282325851600842112568984438",
"length": 790
},
"id": "CVE-2025-69419-60009940",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/41be0f216404f14457bbf3b9cc488dba60b49296",
"target": {
"file": "crypto/pkcs12/p12_utl.c",
"function": "OPENSSL_uni2utf8"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"8197119098003686502323758297771920675",
"123570346674886058532594910452998387419",
"330848004861723585376374210954232885669",
"125253330896326929862487700185368321824"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-64282a80",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/7e9cac9832e4705b91987c2474ed06a37a93cecb",
"target": {
"file": "crypto/pkcs12/p12_utl.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "32008225284128195658040746214741547285",
"length": 1659
},
"id": "CVE-2025-69419-6a40bc63",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/7e9cac9832e4705b91987c2474ed06a37a93cecb",
"target": {
"file": "crypto/asn1/a_strex.c",
"function": "do_buf"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"156983863095094548535338968955595812811",
"153238992315641395177665058487653225478",
"172687070745160318315224274035905216378",
"27082460365194793330044320421038082754",
"4460307226245998230485764046985149278"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-b5120323",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/41be0f216404f14457bbf3b9cc488dba60b49296",
"target": {
"file": "crypto/asn1/a_strex.c"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"28170854778703993674264004058177114599",
"73132526844288570625317440636111911761",
"177405411499435185068645597737938634778",
"224809958623850711330610094965797758930",
"295554444428855106393106961197201359586"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-c377fa22",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/e04bd3433fd84e1861bf258ea37928d9845e6a86",
"target": {
"file": "include/openssl/opensslv.h"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"156983863095094548535338968955595812811",
"153238992315641395177665058487653225478",
"172687070745160318315224274035905216378",
"27082460365194793330044320421038082754",
"4460307226245998230485764046985149278"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-e10f6cf8",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/a26a90d38edec3748566129d824e664b54bee2e2",
"target": {
"file": "crypto/asn1/a_strex.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "32008225284128195658040746214741547285",
"length": 1659
},
"id": "CVE-2025-69419-e8965605",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/cda12de3bc0e333ea8d2c6fd15001dbdaf280015",
"target": {
"file": "crypto/asn1/a_strex.c",
"function": "do_buf"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"202560716467995180801900703314012126638",
"231076714992210239911677876085986544653",
"119476550149019858610160764241585512883",
"237713134421560846878241190267682686452",
"291912177671523663250360670212314966717",
"148718397703357758449784276736258891876",
"8308956487359903771982894414540058331",
"219665286569007368979236427780197060159"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-f19f6747",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/9ad69b994ae7c73ba06d9f75efd2625102de814c",
"target": {
"file": "test/ec_internal_test.c"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"215474658839038190857768659117172798903",
"224789752300883698945153787266757617261",
"56494159630746388130037307952134413004",
"164370382436795402003615230331141913984",
"149153318460680570484795927015804201404"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-fa870959",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/9ad69b994ae7c73ba06d9f75efd2625102de814c",
"target": {
"file": "include/openssl/opensslv.h"
}
}
]
"2026-11-11T13:19:30Z"