(mozilla-projects-nss-nss-3-48-release-notes)=

# NSS 3.48 release notes

## [Introduction](#introduction)

:::{container}
The NSS team has released Network Security Services (NSS) 3.48 on **5 December 2019**, which is a
minor release.

The NSS team would like to recognize first-time contributors:

- Craig Disselkoen
- Giulio Benetti
- Lauri Kasanen
- Tom Prince
:::

## [Distribution Information](#distribution_information)

:::{container}
The HG tag is NSS_3_48_RTM. NSS 3.48 requires NSPR 4.24 or newer.

NSS 3.48 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_48_RTM/src/>

Other releases are available {ref}`mozilla_projects_nss_nss_releases`.
:::

(notable-changes-in-nss-3-48)=

## [Notable Changes in NSS 3.48](#notable_changes_in_nss_3.48)

:::{container}

- [TLS 1.3](https://datatracker.ietf.org/doc/html/rfc8446) is the default maximum TLS
  version. See [Bug 1573118](https://bugzilla.mozilla.org/show_bug.cgi?id=1573118) for
  details.
- [TLS extended master secret](https://datatracker.ietf.org/doc/html/rfc7627) is enabled by
  default, where possible. See [Bug
  1575411](https://bugzilla.mozilla.org/show_bug.cgi?id=1575411) for details.
- The master password PBE now uses 10,000 iterations by default when using the default sql
  (key4.db) storage. Because using an iteration count higher than 1 with the legacy dbm
  (key3.db) storage creates files that are incompatible with previous versions of NSS,
  applications that wish to enable it for key3.db are required to set environment variable
  NSS_ALLOW_LEGACY_DBM_ITERATION_COUNT=1. Applications may set environment variable
  NSS_MIN_MP_PBE_ITERATION_COUNT to request a higher iteration count than the library's default,
  or NSS_MAX_MP_PBE_ITERATION_COUNT to request a lower iteration count for test environments.
  See [Bug 1562671](https://bugzilla.mozilla.org/show_bug.cgi?id=1562671) for details.
:::

### [Certificate Authority Changes](#certificate_authority_changes)

:::{container}

- The following CA certificates were Added:

  - [Bug 1591178](https://bugzilla.mozilla.org/show_bug.cgi?id=1591178) - Entrust Root
    Certification Authority - G4 Cert

    - SHA-256 Fingerprint: DB3517D1F6732A2D5AB97C533EC70779EE3270A62FB4AC4238372460E6F01E88
:::

(upcoming-changes-in-nss-3-49)=

## [Upcoming Changes in NSS 3.49](#upcoming_changes_in_nss_3.49)

:::{container}

- The legacy DBM database, **libnssdbm**, will no longer be built by default. See [Bug
  1594933](https://bugzilla.mozilla.org/show_bug.cgi?id=1594933) for details.
:::

(bugs-fixed-in-nss-3-48)=

## [Bugs fixed in NSS 3.48](#bugs_fixed_in_nss_3.48)

:::{container}

- [Bug 1600775](https://bugzilla.mozilla.org/show_bug.cgi?id=1600775) - Require NSPR 4.24 for
  NSS 3.48
- [Bug 1593401](https://bugzilla.mozilla.org/show_bug.cgi?id=1593401) - Fix race condition in
  self-encrypt functions
- [Bug 1599545](https://bugzilla.mozilla.org/show_bug.cgi?id=1599545) - Fix assertion and add
  test for early Key Update
- [Bug 1597799](https://bugzilla.mozilla.org/show_bug.cgi?id=1597799) - Fix a crash in
  nssCKFWObject_GetAttributeSize
- [Bug 1591178](https://bugzilla.mozilla.org/show_bug.cgi?id=1591178) - Add Entrust Root
  Certification Authority - G4 certificate to NSS
- [Bug 1590001](https://bugzilla.mozilla.org/show_bug.cgi?id=1590001) - Prevent negotiation
  of versions lower than 1.3 after HelloRetryRequest
- [Bug 1596450](https://bugzilla.mozilla.org/show_bug.cgi?id=1596450) - Added a simplified
  and unified MAC implementation for HMAC and CMAC behind PKCS#11
- [Bug 1522203](https://bugzilla.mozilla.org/show_bug.cgi?id=1522203) - Remove an old Pentium
  Pro performance workaround
- [Bug 1592557](https://bugzilla.mozilla.org/show_bug.cgi?id=1592557) - Fix PRNG
  known-answer-test scripts
- [Bug 1586176](https://bugzilla.mozilla.org/show_bug.cgi?id=1586176) - EncryptUpdate should
  use maxout not block size (CVE-2019-11745)
- [Bug 1593141](https://bugzilla.mozilla.org/show_bug.cgi?id=1593141) - add \`notBefore\` or
  similar "beginning-of-validity-period" parameter to
  mozilla::pkix::TrustDomain::CheckRevocation
- [Bug 1591363](https://bugzilla.mozilla.org/show_bug.cgi?id=1591363) - Fix a PBKDF2 memory
  leak in NSC_GenerateKey if key length > MAX_KEY_LEN (256)
- [Bug 1592869](https://bugzilla.mozilla.org/show_bug.cgi?id=1592869) - Use ARM NEON for
  ctr_xor
- [Bug 1566131](https://bugzilla.mozilla.org/show_bug.cgi?id=1566131) - Ensure SHA-1 fallback
  disabled in TLS 1.2
- [Bug 1577803](https://bugzilla.mozilla.org/show_bug.cgi?id=1577803) - Mark PKCS#11 token as
  friendly if it implements CKP_PUBLIC_CERTIFICATES_TOKEN
- [Bug 1566126](https://bugzilla.mozilla.org/show_bug.cgi?id=1566126) - POWER GHASH Vector
  Acceleration
- [Bug 1589073](https://bugzilla.mozilla.org/show_bug.cgi?id=1589073) - Use of new
  PR_ASSERT_ARG in certdb.c
- [Bug 1590495](https://bugzilla.mozilla.org/show_bug.cgi?id=1590495) - Fix a crash in
  PK11_MakeCertFromHandle
- [Bug 1591742](https://bugzilla.mozilla.org/show_bug.cgi?id=1591742) - Ensure DES IV length
  is valid before usage from PKCS#11
- [Bug 1588567](https://bugzilla.mozilla.org/show_bug.cgi?id=1588567) - Enable mozilla::pkix
  gtests in NSS CI
- [Bug 1591315](https://bugzilla.mozilla.org/show_bug.cgi?id=1591315) - Update NSC_Decrypt
  length in constant time
- [Bug 1562671](https://bugzilla.mozilla.org/show_bug.cgi?id=1562671) - Increase NSS MP KDF
  default iteration count, by default for modern key4 storage, optionally for legacy key3.db
  storage
- [Bug 1590972](https://bugzilla.mozilla.org/show_bug.cgi?id=1590972) - Use -std=c99 rather
  than -std=gnu99
- [Bug 1590676](https://bugzilla.mozilla.org/show_bug.cgi?id=1590676) - Fix build if ARM
  doesn't support NEON
- [Bug 1575411](https://bugzilla.mozilla.org/show_bug.cgi?id=1575411) - Enable TLS extended
  master secret by default
- [Bug 1590970](https://bugzilla.mozilla.org/show_bug.cgi?id=1590970) - SSL_SetTimeFunc has
  incomplete coverage
- [Bug 1590678](https://bugzilla.mozilla.org/show_bug.cgi?id=1590678) - Remove
  -Wmaybe-uninitialized warning in tls13esni.c
- [Bug 1588244](https://bugzilla.mozilla.org/show_bug.cgi?id=1588244) - NSS changes for
  Delegated Credential key strength checks
- [Bug 1459141](https://bugzilla.mozilla.org/show_bug.cgi?id=1459141) - Add more CBC padding
  tests that missed NSS 3.47
- [Bug 1590339](https://bugzilla.mozilla.org/show_bug.cgi?id=1590339) - Fix a memory leak in
  btoa.c
- [Bug 1589810](https://bugzilla.mozilla.org/show_bug.cgi?id=1589810) - fix uninitialized
  variable warnings from certdata.perl
- [Bug 1573118](https://bugzilla.mozilla.org/show_bug.cgi?id=1573118) - Enable TLS 1.3 by
  default in NSS

This Bugzilla query returns all the bugs fixed in NSS 3.48:

<https://bugzilla.mozilla.org/buglist.cgi?resolution=FIXED&classification=Components&query_format=advanced&product=NSS&target_milestone=3.48>
:::

## [Compatibility](#compatibility)

:::{container}
NSS 3.48 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.48 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.
:::

## [Feedback](#feedback)

:::{container}
Bugs discovered should be reported by filing a bug report with
[bugzilla.mozilla.org](https://bugzilla.mozilla.org/enter_bug.cgi?product=NSS) (product NSS).
:::
