
Reproductor mínimo de prueba de concepto para CVE-2025-69419, un desbordamiento de búfer en el montón en la función `PKCS12_get_friendlyname()` de OpenSSL provocado por una `BMPString` manipulada. Destinado a pruebas de regresión e investigación de seguridad.
Este repositorio contiene un reproductor de prueba de concepto mínimo para CVE-2025-69419 que afecta versiones vulnerables de OpenSSL.
El PoC demuestra la escritura fuera de los límites del montón reportada para PKCS12_get_friendlyname() al procesar un BMPString friendlyName especialmente manipulado.
El objetivo de este proyecto es proporcionar una prueba de regresión simple para desarrolladores e investigadores de seguridad.
Este PoC no implementa técnicas de explotación y está destinado únicamente a reproducir la corrupción de memoria detectada por AddressSanitizer.
Según el aviso público, la vulnerabilidad ocurre durante la conversión de UTF-16 (BMPString) a UTF-8 dentro de:
PKCS12_get_friendlyname()OPENSSL_uni2utf8()Un BMPString malformado que contiene un carácter que requiere una secuencia UTF-8 de tres bytes resulta en una escritura de un byte en el montón antes del búfer asignado.
Edita build.sh y establece la ruta a tu compilación de OpenSSL.
Luego ejecuta:
./build.sh
./run.sh
Resultado esperado en una compilación ASan vulnerable:
ERROR: AddressSanitizer: heap-buffer-overflow
WRITE of size 1
El seguimiento de pila debería incluir:
OPENSSL_uni2utf8PKCS12_get_friendlynameSin AddressSanitizer, la aplicación puede continuar la ejecución porque la corrupción consiste en una escritura de un solo byte inmediatamente antes de una asignación en el montón. ASan detecta de manera confiable el acceso fuera de los límites y termina el proceso en el punto de corrupción.