NSS 3.14.3 release notes


Network Security Services (NSS) 3.14.3 is a patch release for NSS 3.14. The bug fixes in NSS 3.14.3 are described in the “Bugs Fixed” section below.

Distribution Information

The CVS tag is NSS_3_14_3_RTM. NSS 3.14.3 requires NSPR 4.9.5 or newer.

NSS 3.14.3 source distributions are also available on ftp.mozilla.org for secure HTTPS download:

New in NSS 3.14.3

New Functionality

  • No new major functionality is introduced in this release. This release is a patch release to address CVE-2013-1620.

New Functions

  • in pk11pub.h

    • PK11_SignWithSymKey - Similar to PK11_Sign, performs a signing operation in a single operation. However, unlike PK11_Sign, which uses a SECKEYPrivateKey, PK11_SignWithSymKey performs the signature using a symmetric key, such as commonly used for generating MACs.

New Types


New PKCS #11 Mechanisms

  • CKM_NSS_HMAC_CONSTANT_TIME - Constant-time HMAC operation for use when verifying a padded, MAC-then-encrypted block of data.

  • CKM_NSS_SSL3_MAC_CONSTANT_TIME - Constant-time MAC operation for use when verifying a padded, MAC-then-encrypted block of data using the SSLv3 MAC.

Notable Changes in NSS 3.14.3

  • CVE-2013-1620

    Recent research by Nadhem AlFardan and Kenny Patterson has highlighted a weakness in the handling of CBC padding as used in SSL, TLS, and DTLS that allows an attacker to exploit timing differences in MAC processing. The details of their research and the attack can be found at http://www.isg.rhul.ac.uk/tls/, and has been referred to as “Lucky Thirteen”.

    NSS 3.14.3 includes changes to the softoken and ssl libraries to address and mitigate these attacks, contributed by Adam Langley of Google. This attack is mitigated when using NSS 3.14.3 with an NSS Cryptographic Module (“softoken”) version 3.14.3 or later. However, this attack is only partially mitigated if NSS 3.14.3 is used with the current FIPS validated NSS Cryptographic Module, version

  • Bug 840714 - “certutil -a” was not correctly producing ASCII output as requested.

  • Bug 837799 - NSS 3.14.2 broke compilation with older versions of sqlite that lacked the SQLITE_FCNTL_TEMPFILENAME file control. NSS 3.14.3 now properly compiles when used with older versions of sqlite.


The NSS development team would like to thank Nadhem AlFardan and Kenny Patterson (Royal Holloway, University of London) for responsibly disclosing the issue by providing advance copies of their research. In addition, thanks to Adam Langley (Google) for the development of a mitigation for the issues raised in the paper, along with Emilia Kasper and Bodo Möller (Google) for assisting in the review and improvements to the initial patches.

Bugs fixed in NSS 3.14.3


NSS 3.14.3 shared libraries are backward compatible with all older NSS 3.x shared libraries. A program linked with older NSS 3.x shared libraries will work with NSS 3.14.3 shared libraries without recompiling or relinking. Furthermore, applications that restrict their use of NSS APIs to the functions listed in NSS Public Functions will remain compatible with future versions of the NSS shared libraries.


Bugs discovered should be reported by filing a bug report with bugzilla.mozilla.org (product NSS).