Mozilla on Wednesday announced the rollout of patches for a critical vulnerability in the NSS (Network Security Services) cross-platform cryptographic library.
Tracked as CVE-2021-43527, the security error was identified by Tavis Ormandy, a vulnerability researcher with Google Project Zero. Ormandy named the flaw “BigSig.”
Described as a “heap overflow when handling DER-encoded DSA or RSA-PSS signatures,” the issue affects all NSS versions prior to 3.73 or 3.68.1 ESR.
According to Mozilla, all applications that rely on NSS for handling signatures encoded within CMS, PKCS #7, PKCS #12, and S/MIME are potentially affected.
Furthermore, the security defect may also impact applications that employ NSS for validating certificates, or for additional CRL, OCSP, TLS, or X.509 functionality, depending on how NSS is configured.
Exploitation of the flaw could allow an attacker to crash an application or potentially achieve arbitrary code execution.
“This vulnerability does NOT impact Mozilla Firefox. However, email clients and PDF viewers that use NSS for signature verification, such as Thunderbird, LibreOffice, Evolution and Evince are believed to be impacted,” Mozilla says.
According to Ormandy, the issue exists because a VFYContext structure that NSS creates to store data when verifying a digital signature could only handle maximum signature sizes of 16384 bits (RSA at 2048 bytes). Thus, signatures larger than that would lead to a buffer overflow.
“The untrusted signature is simply copied into this fixed-sized buffer, overwriting adjacent members with arbitrary attacker-controlled data,” Ormandy explains.
The security researcher also notes that the vulnerability can be easily reproduced and that multiple algorithms are affected.
“The bug is that there is simply no bounds checking at all; sig and key are arbitrary-length, attacker-controlled blobs, and cx->u is a fixed-size buffer. The hashobj member contains function pointers, so redirecting execution is trivial,” Ormandy says.