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/osv-test-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": "145081246022159018632346591780852072638",
"length": 3301
},
"id": "CVE-2025-69419-0115da44",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/ddb327ab19b29c64c1752cef26c460ca0b7064ec",
"target": {
"file": "crypto/asn1/a_mbstr.c",
"function": "ASN1_mbstring_ncopy"
}
},
{
"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": {
"line_hashes": [
"151496904140441974460168482169374190024",
"252388763391472546762550272601898462670",
"322392321298523662111637318544365606017",
"92792830564595161366593755445407076135",
"125370360892352031658984319622272957499",
"135472893131710710891792272165369874557",
"144388576385066123595834036136006620631",
"251569583518298411383983956510462999062",
"190752638376984200658169048788492801771",
"100442701798321830557371459503827921141",
"157868922838337151802955969179465392317",
"247133924118207300622477622521703740882"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-10c2ef8d",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/ddb327ab19b29c64c1752cef26c460ca0b7064ec",
"target": {
"file": "crypto/pkcs7/pk7_smime.c"
}
},
{
"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": {
"function_hash": "70418561901620867514045039520920039213",
"length": 148
},
"id": "CVE-2025-69419-315e1fbb",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/ddb327ab19b29c64c1752cef26c460ca0b7064ec",
"target": {
"file": "crypto/asn1/a_mbstr.c",
"function": "out_utf8"
}
},
{
"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": {
"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": [
"131154213046974496778457434048691074837",
"11412147066710286517722597447846471117",
"264770296592556677305107142032766937388",
"276397443140848844849079658380453872857",
"195870554892312134442829321964179019399"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-87e36a00",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/ddb327ab19b29c64c1752cef26c460ca0b7064ec",
"target": {
"file": "include/openssl/opensslv.h"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"126341431044776940549287222658722596257",
"130570927788432269899785168744788951172",
"194169660864360803525450492876473860091",
"110467782499934282756168500046914951485",
"263946134258438649256241779625323641089",
"232531144570205203842568959033909256821",
"50105547378036962616739399907795763233",
"35026789599821935911816818772042439275",
"114710208109255960726965919362105298762",
"125554540231637930487019176647117002503",
"332182547294553747961268671162250805775",
"276033856309860817184326883455361222142",
"318268129131630080093563577138856184340",
"128526451235089518533697095563624199685",
"75522999902161732913968142567093758009",
"233242365504435285051066046524808432015",
"197089990496411212407345093272572794903",
"203627204430850126635677767987115907052",
"110527555710504927393608627867030602220",
"129739062881190220811156277727848860285",
"64544717289057079449815286406570439951",
"201167284819377777248970251144566099169",
"222516930768176972010755807924686646230",
"90961471150301180096894104068604511683",
"128676851434441285018275177161089865561",
"129724505883296824298208229090221093179",
"225269234833384762270352983556638638592",
"90371650052899301631217696225591147992",
"246784737627998664119002956221509877842",
"315371643750711437594895449353374659288",
"286011929765548229255520019142347591441",
"220624038106194157196845376518684753434",
"174882410006964856548150664239804105254",
"116231510630487651899483668166785513275"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-89e18e76",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/ddb327ab19b29c64c1752cef26c460ca0b7064ec",
"target": {
"file": "crypto/asn1/tasn_dec.c"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"243971072618222724126117138392541085907",
"20203436555900253968670420024125559450",
"261033251671054815966464244630025010874",
"142558467251092045021326807845044327645",
"117558078243606577959089637136237792030",
"124332917225391423252605388545338682722",
"236022608503733170562534553288003810395",
"339832511801857794746629870610675811880",
"219260262152978755644652810379289549161",
"238161164963855964634408949729400551790",
"305007661457817428636275014467276783572",
"224942011457082636465204480559032896603",
"161399292792765951653776025419102349086",
"249748745323502641665219507560747603718",
"133814635171188589537358224623499256384",
"166636678108051380708454788668826388282",
"148812255457104429740188330155555022957",
"67995203963239490129688609208357985916",
"46589837028236721023105012731504719567",
"61425611895307496760454057009746874404"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-8be4f956",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/ddb327ab19b29c64c1752cef26c460ca0b7064ec",
"target": {
"file": "crypto/asn1/a_mbstr.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "60884720753669845608764646390078165978",
"length": 2404
},
"id": "CVE-2025-69419-8dac97cc",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/ddb327ab19b29c64c1752cef26c460ca0b7064ec",
"target": {
"file": "crypto/cms/cms_pwri.c",
"function": "cms_RecipientInfo_pwri_crypt"
}
},
{
"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": [
"319646123228225632035521226865494527950",
"52841444872899117514496250284924185664",
"33853134948390324832871761212087746225",
"81188860042095766577152905858367341175",
"302749459819436303573414214711383738500",
"106372169618065324582769687411773396323",
"255586470514418239073904203556570502151",
"316909758438434070933019317604952931093",
"227036639418218030553513135503985645880",
"19797040175335443903820697047342526981",
"3213252085324805485799329367541299827",
"167277605188112932709311947349617776953",
"33676618202441094170922943458357128290"
],
"threshold": 0.9
},
"id": "CVE-2025-69419-c30f17c3",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/ddb327ab19b29c64c1752cef26c460ca0b7064ec",
"target": {
"file": "crypto/cms/cms_pwri.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": {
"function_hash": "219999985288845958916653358585559913606",
"length": 2843
},
"id": "CVE-2025-69419-db231d4a",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/ddb327ab19b29c64c1752cef26c460ca0b7064ec",
"target": {
"file": "crypto/asn1/tasn_dec.c",
"function": "asn1_ex_c2i"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "130089047505679726786813950750828918851",
"length": 1031
},
"id": "CVE-2025-69419-df118fd8",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/kzalewski/openssl-1.1.1/commit/ddb327ab19b29c64c1752cef26c460ca0b7064ec",
"target": {
"file": "crypto/cms/cms_pwri.c",
"function": "kek_unwrap_key"
}
},
{
"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"
}
}
]
"2026-11-11T13:23:11Z"