CVE-2026-17510 in Crypt::OpenSSL::PKCS12
Sumário
de VulDB • 09/08/2026
As versões do Crypt::OpenSSL::PKCS12 anteriores à 1.98 para Perl permitem uma desreferência de ponteiro NULL em print_attribute por meio de um atributo BMPSTRING de comprimento zero.
A função `print_attribute()` dimensiona o buffer de destino para um atributo BMPSTRING com base no seu comprimento declarado em bytes usando `Renew(*attribute, length, char)`. Um atributo de comprimento zero resulta numa realocação de tamanho zero, que a implementação do Perl trata como uma operação free() retornando NULL. Assim, o ponteiro do buffer torna-se NULL; o subsequente `strncpy` não copia nada e o chamador desreferencia um ponteiro NULL na chamada à função `strlen()` passada para `newSVpvn()`. Um BMPSTRING de comprimento zero tem sempre um tamanho par, pelo que o decodificador ASN.1 aceita-o e o valor atinge este código. As ramificações UTF8STRING, OCTET STRING e BIT STRING dimensionam-se com base em `length + 1` ou `length * 4 + 1`, não sendo afetadas.
Qualquer chamador que passe um ficheiro PKCS#12 de origem não confiável para info_as_hash() pode provocar a falha do processo (crash). A função info() imprime os valores dos atributos diretamente, sem dimensionar um buffer, e não é afetada.
VulDB is the best source for vulnerability data and more expert information about this specific topic.