.. _mozilla_projects_nss_nss_3_123_release_notes:

NSS 3.123 release notes
=======================

`Introduction <#introduction>`__
--------------------------------

.. container::

   Network Security Services (NSS) 3.123 was released on *16 April 2026**.

`Distribution Information <#distribution_information>`__
--------------------------------------------------------

.. container::

   The HG tag is NSS_3_123_RTM. NSS 3.123 requires NSPR 4.38.2 or newer.

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

   -  Source tarballs:
      https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_123_RTM/src/

   Other releases are available :ref:`mozilla_projects_nss_releases`.

.. _changes_in_nss_3.123:

`Changes in NSS 3.123 <#changes_in_nss_3.123>`__
------------------------------------------------------------------

.. container::

   - Bug 2023202 - Add gtests for SSL_ReconfigFD covering certs, ALPN, PSK, and double-reconfig.
   - Bug 2022410 - handle client cert callback completion prior to server Finished.
   - Bug 2023202 - Extract ssl_CopySocketConfig() to remove duplicate logic in SSL_ReconfigFD.
   - Bug 2030135 - improve error handling in PK11_ImportPrivateKeyInfoAndReturnKey (NSS 3.90.5).
   - Bug 2029462 - store email on subject cache_entry in NSS trust domain.
   - Bug 2029425 - Heap use-after-free in cert_VerifyCertChainOld via dangling certsList[] entry on NameConstraints violation.
   - Bug 2029323 - Improve size calculations in CMS content buffering.
   - Bug 2028001 - avoid integer overflow while escaping RFC822 Names.
   - Bug 2027378 - Reject excessively large ASN.1 SEQUENCE OF in quickder.
   - Bug 2027365 - Deep copy profile data in CERT_FindSMimeProfile.
   - Bug 2027345 - Improve input validation in DSAU signature decoding.
   - Bug 2026089 - Clarify extension negotiation mechanism for TLS Handshakes (NSS 3.90.5).
   - Bug 2023209 - ensure permittedSubtrees don't match wildcards that could be outside the permitted tree r?jschanck.
   - Bug 2009552 - avoid integer overflow in platform-independent ghash.
   - Bug 1935995 - make ss->ssl3.hs.cookie an owned-copy of the cookie.
   - Bug 2030135 - improve error handling in PK11_ImportPrivateKeyInfoAndReturnKey.
   - Bug 2029752 - Improving the allocation of S/MIME DecryptSymKey.
   - Bug 2026311 - avoid integer overflow in RSA_EMSAEncodePSS.
   - Bug 2019357 - RSA_EMSAEncodePSS should validate the length of mHash r?nkulatova.
   - Bug 2026156 - Add a maximum cert uncompressed len and tests.
   - Bug 2026089 - Clarify extension negotiation mechanism for TLS Handshakes.
   - Bug 2023207 - Fix integer underflow in tls13_AEAD when ciphertext is shorter than tag.
   - Bug 2019224 - Remove invalid PORT_Free(), r?#nss-reviewers,djackson.
   - Bug 1964722 - free digest objects in SEC_PKCS7DecoderFinish if they haven't already been freed r?#nss-reviewers.
   - Bug 2027382 - Reject oversized inputs in UTF-8 conversion functions.
   - Bug 1998526 - Align PKCS7 digest array with digestAlgorithms.
   - Bug 2030729 - remove SEC_ASN1_CHOICE entries from PQ private key templates.
   - Bug 2029782 - fix 8-byte over-read of AES-192 key buffer in x86 builds without USE_HW_AES.
   - Bug 2031163 - set PK11_ChangePW error after PK11_InitToken.
   - Bug 2026025 - Extend ./mach tests & all.sh to pretty print their output.
   - Bug 2029720 - avoid integer overflow when converting AVA value to hex string.
   - Bug 2030979 - handle SEC_ASN1_NULL in sec_asn1e_contents_length.
   - Bug 2027329 - PK11SDR_Decrypt: allowlist supported encryption algorithms.
   - Bug 2029783 - fix use of PORT_ArenaGrow when decoding multi-chunk PKCS#7 EncryptedData with no content callback.
   - Bug 2029818 - avoid refcount over-release in CERT_CertChainFromCert error path.
   - Bug 2030794 - avoid memory leak in SECITEM_FreeArray.
   - Bug 2027847 - Set nssckbi version to 2.86.
   - Bug 2027847 - Remove FIRMAPROFESIONAL CA ROOT-A WEB from NSS.
   - Bug 2020164 - Remove GLOBALTRUST 2020 from NSS.
   - Bug 2020151 - Remove TeliaSonera Root CA v1 from NSS.
   - Bug 2020144 - Remove Six Viking Cloud Root CAs from NSS.
   - Bug 2020137 - Turn off certain Trust Bits in NSS for Five GTS CAs.
   - Bug 2017471 - Remove Websites Trust Bit from SwissSign Gold CA - G2.
   - Bug 2017468 - Remove OU=certSIGN ROOT CA from NSS.
   - Bug 2017464 - Remove Websites Trust Bit from Root CN=Certigna.
   - Bug 2017460 - Remove AffirmTrust Roots from NSS.
   - Bug 2017453 - Remove Websites Trust Bit from DigiCert 2006 Roots.
   - Bug 2017348 - Remove Websites Trust Bit from Entrust Root Certification Authority – G2 & EC1.
   - Bug 2017345 - Remove Websites Trust Bit from COMODO Certification Authority.
   - Bug 2017322 - Set CKA_NSS_SERVER_DISTRUST_AFTER for CN=Izenpe.com.
   - Bug 2016750 - Remove Email Trust Bit from Four Amazon Root CAs.
   - Bug 2029431 - avoid signed int overflow in CTS_EncryptUpdate.
   - Bug 2030100 - VerifyCodeSigningCertificateChain: require at least one certificate.
   - Bug 2029721 - fix use of uninitialised length after failed PK11_SignWithMechanism.
   - Bug 2029731 - modify linked-list only on success in CERT_AddExtensionByOID.
   - Bug 2029746 - reject oversized DSA subPrime values.
   - Bug 2029740 - check object handle types in NSC_EncapsulateKey and NSC_DecapsulateKey.
   - Bug 2029448 - enforce minimum buffer length in sftk_CheckCBCPadding.
   - Bug 2029432 - validate parameter length in sftk_ChaCha20_Poly1305_Message_Encrypt.
   - Bug 2029771 - Heap use-after-free in [@ token_destructor] reading tok->pk11slot after nssToken_Destroy frees the token arena.
   - Bug 2029774 - Invalid free of arena-interior pointer in [@ DSA_NewRandom] due to inverted arena guard.
   - Bug 2029885 - avoid leaving dangling pointer in tls_DestroySignOrVerifyContext.
   - Bug 2022059 - NSS can't import, store, or export mlk-kem keys.
   - Bug 2029439 - fix instances of softoken attributes freed after owning object.
   - Bug 2027381 - improve error handling in SECITEM_DupArray with non-null arena.
   - Bug 2027324 - NSS_CMSContentInfo_SetContent: only modify cinfo if everything succeeds.
   - Bug 2027363 - initialize src in SEC_PKCS5GetIV.
   - Bug 2029046 - clang format.
   - Bug 2029046 - changes to allow building gtests from mozilla-central.
   - Bug 2029182 - split database creation scripts out of ssl_gtests.sh and gtests.sh.
   - Bug 2017948 - handleObjects in Softoken needs cleanup.
   - Bug 2027383 - fix maxSize calculation in NSSUTIL_AddNSSFlagToModuleSpec.
   - Bug 2029023 - add missing breaks in CheckECDHShareReuse test helper.
   - Bug 2027434 - avoid integer underflow in sec_CreateRSAPSSParameters.
   - Bug 2007224 - mlDsaPubTemplate is missing a CKA_ENCAPSULATE entry.
   - Bug 2024530 - Add clang-tidy CI job with security-focused checks.
   - Bug 1834672 - Adjust PBE iteration limit.
   - Bug 2025100 - Update Botan version for cryptofuzz.
   - Bug 2017788 - FIPS indicators need to take into account target keys.
   - Bug 1965329 - add failure checks to pk11_mergeTrust() .
   - Bug 2024785 - consistently protect SFTKSlot.{isLoggedIn,ssoLoggedIn,needLogin} with slotLock.
   - Bug 2025098 - Part 2: Always return unique nickname for PKCS12 fuzzer.
   - Bug 2025098 - Part 1: Simplify fuzzer MAC verification to always pass.
   - Bug 1834672 - Limit PBE iteration count.
   - Bug 2025801 - TLS interoperability tests - fix gnutls flakiness and extend to all platforms.
   - Bug 2012680 - improve DER_GetInteger error handling.
   - Bug 2017987 - Fix missing zero-init in generate_blinding_params.
   - Bug 2017987 - Need "partial public key validation" for RSA OAEP in FIPS mode.

