[SRU][X/master][pull-req] CVE-2018-5383: Bluetooth info leak
Paolo Pisati
paolo.pisati at canonical.com
Wed Jul 17 14:21:15 UTC 2019
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
--
bye,
p.
More information about the kernel-team
mailing list