
Questo repository contiene una proof-of-concept minimale per riprodurre CVE-2025-69419, che interessa le versioni vulnerabili di OpenSSL.
La PoC dimostra la scrittura out-of-bounds nell'heap segnalata per PKCS12_get_friendlyname() quando viene elaborato un BMPString friendlyName appositamente costruito.
L'obiettivo di questo progetto è fornire un semplice test di regressione per sviluppatori e ricercatori di sicurezza.
Questa PoC non implementa tecniche di sfruttamento ed è intesa esclusivamente a riprodurre la corruzione della memoria rilevata da AddressSanitizer.
Secondo l'avviso pubblico, la vulnerabilità si verifica durante la conversione da UTF-16 (BMPString) a UTF-8 all'interno di:
PKCS12_get_friendlyname()OPENSSL_uni2utf8()Un BMPString malformato contenente un carattere che richiede una sequenza UTF-8 di tre byte provoca una scrittura di un byte nell'heap prima del buffer allocato.
Modifica build.sh e imposta il percorso della tua build di OpenSSL.
Quindi esegui:
./build.sh
./run.sh
Risultato atteso su una build ASan vulnerabile:
ERROR: AddressSanitizer: heap-buffer-overflow
WRITE of size 1
La traccia dello stack dovrebbe includere:
OPENSSL_uni2utf8PKCS12_get_friendlynameSenza AddressSanitizer l'applicazione potrebbe continuare l'esecuzione perché la corruzione consiste in una scrittura di un singolo byte immediatamente prima di un'allocazione heap. ASan rileva in modo affidabile l'accesso fuori dai limiti e termina il processo nel punto della corruzione.