CVE-2026-17510: Crypt::OpenSSL::PKCS12 versions before 1.98 for Perl allow a NULL pointer dereference in print_attribute via a zero length BMPSTRING attribute
Crypt::OpenSSL::PKCS12 versions before 1.98 for Perl allow a NULL pointer dereference in printattribute via a zero length BMPSTRING attribute.
printattribute() sizes the destination buffer for a BMPSTRING attribute from its declared byte length with Renew(attribute, length, char). A zero length attribute makes that a zero size reallocation, which Perl implements as a free returning NULL, so the buffer pointer becomes NULL, the following strncpy copies nothing, and the caller dereferences NULL in the strlen() it passes to newSVpvn(). A zero length BMPSTRING is even length, so the ASN.1 decoder accepts it and the value reaches this code. The UTF8STRING, OCTET STRING and BIT STRING arms size on length + 1 or length 4 + 1 and are unaffected.
Any caller that passes an untrusted PKCS#12 file to infoashash() can crash the process. info() prints attribute values directly without sizing a buffer and is unaffected.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Crypt::OpenSSL::PKCS12to a version that resolves this vulnerability.Fixed in 1.98
Event History
Frequently Asked Questions
What is the severity of CVE-2026-17510?
CVE-2026-17510 has a risk rating of 20, indicating a high severity level.
How do I fix CVE-2026-17510?
To fix CVE-2026-17510, upgrade to Crypt::OpenSSL::PKCS12 version 1.98 or later.
What component is affected by CVE-2026-17510?
CVE-2026-17510 affects the Perl module Crypt::OpenSSL::PKCS12 versions prior to 1.98.
What type of vulnerability is CVE-2026-17510?
CVE-2026-17510 is classified as a Null Pointer Dereference vulnerability.
What issue in print_attribute is caused by CVE-2026-17510?
CVE-2026-17510 allows a NULL pointer dereference in print_attribute due to handling a zero-length BMPSTRING attribute.