
Reprodutor mínimo de prova de conceito para CVE-2025-69419, um estouro de buffer heap em OpenSSL PKCS12_get_friendlyname() desencadeado por um BMPString manipulado. Destinado a testes de regressão e pesquisa de segurança.
Este repositório contém um reprodutor mínimo de prova de conceito para CVE-2025-69419 que afeta versões vulneráveis do OpenSSL.
O PoC demonstra a escrita fora dos limites do heap relatada para PKCS12_get_friendlyname() ao processar um BMPString friendlyName especialmente elaborado.
O objetivo deste projeto é fornecer um teste de regressão simples para desenvolvedores e pesquisadores de segurança.
Este PoC não implementa técnicas de exploração e destina-se exclusivamente a reproduzir a corrupção de memória detectada pelo AddressSanitizer.
De acordo com o aviso público, a vulnerabilidade ocorre durante a conversão de UTF-16 (BMPString) para UTF-8 dentro de:
PKCS12_get_friendlyname()OPENSSL_uni2utf8()Um BMPString malformado contendo um caractere que requer uma sequência UTF-8 de três bytes resulta em uma escrita de um byte no heap antes do buffer alocado.
Edite build.sh e defina o caminho para sua compilação do OpenSSL.
Em seguida, execute:
./build.sh
./run.sh
Resultado esperado em uma compilação ASan vulnerável:
ERROR: AddressSanitizer: heap-buffer-overflow
WRITE of size 1
O rastreamento de pilha deve incluir:
OPENSSL_uni2utf8PKCS12_get_friendlynameSem o AddressSanitizer, o aplicativo pode continuar a execução porque a corrupção consiste em uma escrita de um único byte imediatamente antes de uma alocação de heap. O ASan detecta de forma confiável o acesso fora dos limites e encerra o processo no ponto da corrupção.