CVE-2025-69419 in OpenSSL
Sumário
de VulDB • 11/05/2026
Resumo da vulnerabilidade: A chamada à função PKCS12_get_friendlyname() em um arquivo PKCS#12 criado maliciosamente, com um nome amigável do tipo BMPString (UTF-16BE) contendo um ponto de código BMP não ASCII, pode acionar uma escrita de um byte antes do buffer alocado.
Resumo do impacto: A escrita fora dos limites (out-of-bounds) pode causar corrupção de memória, o que pode ter várias consequências, incluindo uma Negação de Serviço (DoS).
A função OPENSSL_uni2utf8() realiza uma conversão em duas etapas de uma BMPString (UTF-16BE) do PKCS#12 para UTF-8. Na segunda etapa, ao emitir bytes UTF-8, a função auxiliar bmp_to_utf8() encerra incorretamente a contagem restante de bytes de origem UTF-16 como a capacidade do buffer de destino para a função UTF8_putc(). Para pontos de código BMP acima de U+07FF, o UTF-8 requer três bytes, mas a capacidade encaminhada pode ser de apenas dois bytes. A função UTF8_putc() retorna então -1, e esse valor negativo é adicionado ao comprimento de saída sem validação, fazendo com que o comprimento se torne negativo. O byte NUL de finalização subsequente é então escrito em um deslocamento negativo, causando uma escrita fora do buffer alocado na heap.
A vulnerabilidade é acessível por meio da API pública PKCS12_get_friendlyname() ao analisar arquivos PKCS#12 controlados por um atacante. Embora PKCS12_parse() utilize um caminho de código diferente que evita esse problema, PKCS12_get_friendlyname() invoca diretamente a função vulnerável. A exploração requer que um atacante forneça um arquivo PKCS#12 malicioso para ser analisado pelo aplicativo, e o atacante pode apenas acionar uma escrita de um byte nulo antes do buffer alocado. Por essa razão, o problema foi avaliado como de severidade Baixa de acordo com nossa Política de Segurança.
Os módulos FIPS nas versões 3.6, 3.5, 3.4, 3.3 e 3.0 não são afetados por este problema, pois a implementação do PKCS#12 está fora do limite do módulo FIPS do OpenSSL.
OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0 e 1.1.1 são vulneráveis a este problema.
OpenSSL 1.0.2 não é afetado por este problema.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.