Vulnerabilidades do JONASBN Crypt::OpenSSL::PKCS12
🔔 Criar alerta RSS Verificador de versão
CVEs publicadas que afetam JONASBN Crypt::OpenSSL::PKCS12: 3 registro(s), com versões afetadas e correções.
CVE-2026-9265
Crítica · 9.1
CWE-125 19/06/2026
Crypt::OpenSSL::PKCS12 para Perl: leitura heap fora dos limites em print_attribute (CWE-125)
As versões do Crypt::OpenSSL::PKCS12 anteriores à 1.96 para Perl permitem uma leitura heap fora dos limites (OOB) no caminho UTF8STRING de print_attribute.
print_attribute() copia um valor de atributo ASN.1 do tipo UTF8STRING para um buffer heap dimensionado exatamente pelo seu comprimento declarado, via strncpy, sem deixar um terminador NUL. Chamadores posteriores executam strlen() sobre o resultado e passam o comprimento inflacionado para newSVpvn(), copiando bytes adjacentes do heap, influenciados por um atacante, para um escalar Perl.
CVE-2026-8721
Crítica · 9.8
CWE-170 17/05/2026
Crypt::OpenSSL::PKCS12 para Perl: truncamento de senha em bytes NULL embutidos (CWE-170)
O Crypt::OpenSSL::PKCS12 para Perl, nas versões até a 1.94, trunca senhas que contenham bytes NULL embutidos.
Os parâmetros de senha em PKCS12.xs são declarados como char *, o que passa pelo typemap padrão do Perl para SvPV_nolen. O comprimento conhecido pelo Perl é descartado.
O código C (ou o próprio OpenSSL internamente) chama strlen() sobre o buffer. Qualquer byte de senha na posição do primeiro NULL ou depois dele é descartado silenciosamente. Senhas binárias, derivadas por KDF ou derivadas por HMAC perdem entropia sem nenhum aviso.
CVE-2026-8507
Crítica · 9.8
CWE-787 17/05/2026
Crypt::OpenSSL::PKCS12 para Perl - escrita fora dos limites ao analisar arquivos PKCS12
Crypt::OpenSSL::PKCS12 versões até 1.94 para Perl apresentam falhas de escrita fora dos limites (OOB).
Ao analisar um arquivo PKCS12, com um atributo OCTET STRING (ou BIT STRING) de >= 1 GiB em um SAFEBAG, via info() ou info_as_hash(), ocorreria uma escrita de heap fora dos limites com potencial de execução remota de código (RCE), devido a um estouro de inteiro com sinal no cálculo de tamanho passado para Renew().