ACK: [SRU][X/master][pull-req] CVE-2018-5383: Bluetooth info leak

Connor Kuehl connor.kuehl at canonical.com
Mon Jul 22 18:20:51 UTC 2019


On 7/17/19 7:21 AM, Paolo Pisati wrote:
> Bluetooth firmware or operating system software drivers may not sufficiently
> validate elliptic curve parameters used to generate public keys during a
> Diffie-Hellman key exchange, which may allow a remote attacker to obtain the
> encryption key used by the device.
> 
> https://people.canonical.com/~ubuntu-security/cve/2018/CVE-2018-5383.html
> 
> According to Intel, linux-4.4.y is affected, but backporting the upstream fix
> was not feasible (net/bluetooth/ecc.c, that is shipped in 4.4, has a different
> provenance than crypto/ecc.c, that is the recent upstream implementation).
> Linux 4.12+ completely removed net/blueooth/ecc.c and replaced it with the
> crypto module ecdh (the one that received the cve fix upstream), and this is a
> backport of that crypto module (plus all the necessary commits to make the
> backport apply cleanly), and the actual cve fix.
> 
> The result is a clean cherry-pick from upstream (with some mechanical
> modification), tested on a Xenial amd64 box, succesfully connecting it via
> bluetooth to several devices (audio, hid, mobile) and exhanging different data
> streams (audio, files, etc).
> 
> The following changes since commit 3693aaff5f5b24a250ecb936f320d0a5849bf62b:
> 
>   UBUNTU: Ubuntu-4.4.0-143.169 (2019-02-06 10:39:59 +0000)
> 
> are available in the git repository at:
> 
>   git://git.launchpad.net/~p-pisati/ubuntu/+source/linux 7a716e4ece23d2d9f86aa58d45500df7429fd2b3
> 
> for you to fetch changes up to 7a716e4ece23d2d9f86aa58d45500df7429fd2b3:
> 
>   crypto: ecdh - add public key verification test (2019-07-17 13:52:51 +0000)
> 
> ----------------------------------------------------------------
> Paolo Pisati (1):
>       UBUNTU: [Config] CRYPTO_ECDH=m
> 
> Pierre (1):
>       crypto: ecc - Fix NULL pointer deref. on no default_rng
> 
> Salvatore Benedetto (4):
>       crypto: kpp - Key-agreement Protocol Primitives API (KPP)
>       crypto: dh - Add DH software implementation
>       crypto: ecdh - Add ECDH software support
>       Bluetooth: convert smp and selftest to crypto kpp API
> 
> Stephan Mueller (2):
>       crypto: doc - add KPP documentation
>       crypto: ecdh - add public key verification test
> 
> Stephen Rothwell (1):
>       crypto: ecdh - make ecdh_shared_secret unique
> 
> Tudor-Dan Ambarus (5):
>       crypto: kpp, (ec)dh - fix typos
>       crypto: ecc - remove unused function arguments
>       crypto: ecc - remove unnecessary casts
>       crypto: ecc - rename ecdh_make_pub_key()
>       crypto: ecdh - add privkey generation support
> 
>  Documentation/crypto/api-kpp.rst          |   92 +++
>  crypto/Kconfig                            |   24 +
>  crypto/Makefile                           |   10 +
>  crypto/crypto_user.c                      |   20 +
>  crypto/dh.c                               |  189 +++++
>  crypto/dh_helper.c                        |   95 +++
>  crypto/ecc.c                              | 1104 +++++++++++++++++++++++++++++
>  crypto/ecc.h                              |   92 +++
>  crypto/ecc_curve_defs.h                   |   71 ++
>  crypto/ecdh.c                             |  153 ++++
>  crypto/ecdh_helper.c                      |   86 +++
>  crypto/kpp.c                              |  123 ++++
>  crypto/testmgr.c                          |  154 ++++
>  crypto/testmgr.h                          |  323 +++++++++
>  debian.master/config/config.common.ubuntu |    3 +
>  include/crypto/dh.h                       |   87 +++
>  include/crypto/ecdh.h                     |   88 +++
>  include/crypto/internal/kpp.h             |   64 ++
>  include/crypto/kpp.h                      |  339 +++++++++
>  include/linux/crypto.h                    |    1 +
>  include/uapi/linux/cryptouser.h           |    5 +
>  net/bluetooth/Kconfig                     |    1 +
>  net/bluetooth/Makefile                    |    2 +-
>  net/bluetooth/ecc.c                       |  816 ---------------------
>  net/bluetooth/ecc.h                       |   54 --
>  net/bluetooth/ecdh_helper.c               |  223 ++++++
>  net/bluetooth/ecdh_helper.h               |   27 +
>  net/bluetooth/selftest.c                  |    6 +-
>  net/bluetooth/smp.c                       |    8 +-
>  29 files changed, 3382 insertions(+), 878 deletions(-)
>  create mode 100644 Documentation/crypto/api-kpp.rst
>  create mode 100644 crypto/dh.c
>  create mode 100644 crypto/dh_helper.c
>  create mode 100644 crypto/ecc.c
>  create mode 100644 crypto/ecc.h
>  create mode 100644 crypto/ecc_curve_defs.h
>  create mode 100644 crypto/ecdh.c
>  create mode 100644 crypto/ecdh_helper.c
>  create mode 100644 crypto/kpp.c
>  create mode 100644 include/crypto/dh.h
>  create mode 100644 include/crypto/ecdh.h
>  create mode 100644 include/crypto/internal/kpp.h
>  create mode 100644 include/crypto/kpp.h
>  delete mode 100644 net/bluetooth/ecc.c
>  delete mode 100644 net/bluetooth/ecc.h
>  create mode 100644 net/bluetooth/ecdh_helper.c
>  create mode 100644 net/bluetooth/ecdh_helper.h
> 

Acked-by: Connor Kuehl <connor.kuehl at canonical.com>




More information about the kernel-team mailing list