The changes described here are listed in chapters 3.5.1 and 4.5.1 of the erratum document.
The following text is part of the old Bluetooth® Core Specification. It is removed in a new version according to the erratum:
This key pair needs to be generated only once per device and may be computed in advance of pairing. A device may, at any time, choose to discard its public-private key pair and generate a new one, although there is not a requirement to do so.
The following text is added to the Bluetooth Core Specification:
A device shall validate that any public key received from any BD_ADDR is on the correct curve (P-256).A valid public key Q = (XQ, YQ) is one where XQ and YQ are both in the range 0 to p - 1 and satisfy the equation (YQ)2 = (XQ)3 + aXQ + b (mod p) in the relevant curve’s finite field. See [Vol 2] Part H, Section 7.6 for the values of a, b, and p.
A device can validate a public key by directly checking the curve equation, by implementing elliptic curve point addition and doubling using formulas that are valid only on the correct curve, or by other means.
A device that detects an invalid public key from the peer at any point during the LE Secure Connections pairing process shall not use the resulting LTK, if any.
Previously, the standard stated that the private/public key pair used for the LE Secure Connection pairing procedure was required to be generated at least once per device. There was no recommendation to replace the public/private key pair. nRF5 SDKs currently do not implement the recommended private/public key pair regeneration.
A new requirement to validate the remote public key has been added to the Bluetooth Core Specifications. A new restriction has been included that does not allow the use of any resulting LTK if an invalid public key is detected. This method of validating the key follows Chapter 3.2.3, Partial Validation of Elliptic Curve Public Key, in SEC 1: Elliptic Curve Cryptography v2.0.
The ble_lesc module in nRF5 SDK v15.0.0 generates a random DHKey, causing a breakdown of the pairing procedure if an invalid public key is detected.