Marcel Holtmann
693cd8ce3f
Bluetooth: Fix regression with minimum encryption key size alignment
...
When trying to align the minimum encryption key size requirement for
Bluetooth connections, it turns out doing this in a central location in
the HCI connection handling code is not possible.
Original Bluetooth version up to 2.0 used a security model where the
L2CAP service would enforce authentication and encryption. Starting
with Bluetooth 2.1 and Secure Simple Pairing that model has changed into
that the connection initiator is responsible for providing an encrypted
ACL link before any L2CAP communication can happen.
Now connecting Bluetooth 2.1 or later devices with Bluetooth 2.0 and
before devices are causing a regression. The encryption key size check
needs to be moved out of the HCI connection handling into the L2CAP
channel setup.
To achieve this, the current check inside hci_conn_security() has been
moved into l2cap_check_enc_key_size() helper function and then called
from four decisions point inside L2CAP to cover all combinations of
Secure Simple Pairing enabled devices and device using legacy pairing
and legacy service security model.
Fixes: d5bb334a8e ("Bluetooth: Align minimum encryption key size for LE and BR/EDR connections")
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203643
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Cc: stable@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-06-22 09:07:39 -07:00
..
6lowpan
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174
2019-05-30 11:26:41 -07:00
9p
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 188
2019-05-30 11:29:21 -07:00
802
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
8021q
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
appletalk
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 372
2019-06-05 17:37:10 +02:00
atm
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ax25
ax25: fix inconsistent lock state in ax25_destroy_timer
2019-06-16 14:22:37 -07:00
batman-adv
bluetooth
Bluetooth: Fix regression with minimum encryption key size alignment
2019-06-22 09:07:39 -07:00
bpf
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206
2019-05-30 11:29:53 -07:00
bpfilter
treewide: Add SPDX license identifier - Makefile/Kconfig
2019-05-21 10:50:46 +02:00
bridge
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
caif
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194
2019-05-30 11:29:22 -07:00
can
can: purge socket error queue on sock destruct
2019-06-07 23:03:54 +02:00
ceph
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 268
2019-06-05 17:30:29 +02:00
core
net: remove duplicate fetch in sock_getsockopt
2019-06-18 10:04:16 -07:00
dcb
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201
2019-05-30 11:29:52 -07:00
dccp
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
decnet
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 53
2019-05-24 17:36:42 +02:00
dns_resolver
treewide: Add SPDX license identifier - Makefile/Kconfig
2019-05-21 10:50:46 +02:00
dsa
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2019-06-07 09:29:14 -07:00
ethernet
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
hsr
hsr: fix don't prune the master node from the node_db
2019-05-23 09:29:44 -07:00
ieee802154
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174
2019-05-30 11:26:41 -07:00
ife
treewide: Add SPDX license identifier - Makefile/Kconfig
2019-05-21 10:50:46 +02:00
ipv4
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2019-06-21 22:23:35 -07:00
ipv6
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2019-06-21 22:23:35 -07:00
iucv
net/af_iucv: always register net_device notifier
2019-06-19 16:26:33 -04:00
kcm
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
key
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
l2tp
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
l3mdev
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
lapb
lapb: fixed leak of control-blocks.
2019-06-16 20:44:20 -07:00
llc
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 281
2019-06-05 17:36:36 +02:00
mac80211
SPDX update for 5.2-rc6
2019-06-21 09:58:42 -07:00
mac802154
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174
2019-05-30 11:26:41 -07:00
mpls
mpls: fix af_mpls dependencies for real
2019-06-12 09:42:34 -07:00
ncsi
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
netfilter
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2019-06-21 22:23:35 -07:00
netlabel
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13
2019-05-21 11:28:45 +02:00
netlink
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
netrom
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
nfc
SPDX update for 5.2-rc6
2019-06-21 09:58:42 -07:00
nsh
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
openvswitch
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2019-06-17 15:55:34 -07:00
packet
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2019-06-07 09:29:14 -07:00
phonet
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336
2019-06-05 17:37:07 +02:00
psample
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
qrtr
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284
2019-06-05 17:36:37 +02:00
rds
net: rds: fix memory leak in rds_ib_flush_mr_pool
2019-06-06 10:32:16 -07:00
rfkill
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
rose
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
rxrpc
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
sched
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2019-06-21 22:23:35 -07:00
sctp
sctp: Free cookie before we memdup a new one
2019-06-14 19:27:24 -07:00
smc
treewide: Add SPDX license identifier - Makefile/Kconfig
2019-05-21 10:50:46 +02:00
strparser
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
sunrpc
SUNRPC: Fix a credential refcount leak
2019-06-21 14:45:09 -04:00
switchdev
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
tipc
tipc: pass tunnel dev as NULL to udp_tunnel(6)_xmit_skb
2019-06-18 20:48:45 -04:00
tls
net: tls, correctly account for copied bytes with multiple sk_msgs
2019-06-12 11:04:35 -07:00
unix
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
vmw_vsock
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2019-06-21 22:23:35 -07:00
wimax
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 268
2019-06-05 17:30:29 +02:00
wireless
SPDX update for 5.2-rc6
2019-06-21 09:58:42 -07:00
x25
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 41
2019-05-24 17:27:12 +02:00
xdp
xdp: check device pointer before clearing
2019-06-12 16:41:47 +02:00
xfrm
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 335
2019-06-05 17:37:06 +02:00
compat.c
treewide: Add SPDX license identifier for missed files
2019-05-21 10:50:45 +02:00
Kconfig
treewide: Add SPDX license identifier - Makefile/Kconfig
2019-05-21 10:50:46 +02:00
Makefile
socket.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
sysctl_net.c
treewide: Add SPDX license identifier for missed files
2019-05-21 10:50:45 +02:00