linux/net/bluetooth
Luiz Augusto von Dentz c82b6357a5 Bluetooth: hci_event: Fix not using key encryption size when its known
This fixes the regression introduced by 50c1241e6a8a ("Bluetooth: l2cap:
Check encryption key size on incoming connection") introduced a check for
l2cap_check_enc_key_size which checks for hcon->enc_key_size which may
not be initialized if HCI_OP_READ_ENC_KEY_SIZE is still pending.

If the key encryption size is known, due previously reading it using
HCI_OP_READ_ENC_KEY_SIZE, then store it as part of link_key/smp_ltk
structures so the next time the encryption is changed their values are
used as conn->enc_key_size thus avoiding the racing against
HCI_OP_READ_ENC_KEY_SIZE.

Now that the enc_size is stored as part of key the information the code
then attempts to check that there is no downgrade of security if
HCI_OP_READ_ENC_KEY_SIZE returns a value smaller than what has been
previously stored.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=220061
Link: https://bugzilla.kernel.org/show_bug.cgi?id=220063
Fixes: 522e9ed157 ("Bluetooth: l2cap: Check encryption key size on incoming connection")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2025-05-08 10:24:15 -04:00
..
bnep Bluetooth: bnep: fix wild-memory-access in proto_unregister 2024-10-16 16:10:03 -04:00
cmtp Bluetooth: CMTP: Mark BT_CMTP as DEPRECATED 2024-09-10 13:07:08 -04:00
hidp treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
rfcomm treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
6lowpan.c Bluetooth: L2CAP: add TX timestamping 2025-03-25 12:50:35 -04:00
af_bluetooth.c Including fixes from netfiler, xfrm and bluetooth. 2024-10-24 16:43:50 -07:00
aosp.c Bluetooth: Fix null pointer deref on unexpected status event 2022-08-08 17:04:37 -07:00
aosp.h Bluetooth: aosp: Support AOSP Bluetooth Quality Report 2021-11-02 19:37:52 +01:00
coredump.c HCI: coredump: Log devcd dumps into the monitor 2025-03-25 12:47:49 -04:00
ecdh_helper.c Bluetooth: Use crypto_wait_req 2023-02-13 18:34:48 +08:00
ecdh_helper.h Fix misc new gcc warnings 2021-04-27 17:05:53 -07:00
eir.c Bluetooth: Fix eir name length 2024-03-08 10:22:17 -05:00
eir.h move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hci_codec.c Bluetooth: Fix support for Read Local Supported Codecs V2 2022-12-02 13:09:31 -08:00
hci_codec.h Bluetooth: Add support for Read Local Supported Codecs V2 2021-09-07 14:09:18 -07:00
hci_conn.c Bluetooth: hci_event: Fix not using key encryption size when its known 2025-05-08 10:24:15 -04:00
hci_core.c Bluetooth: add support for skb TX SND/COMPLETION timestamping 2025-03-25 12:49:38 -04:00
hci_debugfs.c Bluetooth: Remove hci_request.{c,h} 2024-07-15 10:11:35 -04:00
hci_debugfs.h Bluetooth: hci_core: Move all debugfs handling to hci_debugfs.c 2021-09-22 16:17:13 +02:00
hci_event.c Bluetooth: hci_event: Fix not using key encryption size when its known 2025-05-08 10:24:15 -04:00
hci_sock.c Bluetooth: Improve setsockopt() handling of malformed user input 2024-12-11 11:54:57 -05:00
hci_sync.c Bluetooth: hci_conn: Fix not setting timeout for BIG Create Sync 2025-04-25 15:03:19 -04:00
hci_sysfs.c Bluetooth: Allow reset via sysfs 2025-01-15 10:37:07 -05:00
iso.c Bluetooth: hci_conn: Fix not setting timeout for BIG Create Sync 2025-04-25 15:03:19 -04:00
Kconfig Bluetooth: Remove BT_HS 2024-03-06 17:22:39 -05:00
l2cap_core.c Bluetooth: L2CAP: copy RX timestamp to new fragments 2025-04-25 15:03:19 -04:00
l2cap_sock.c Bluetooth: L2CAP: add TX timestamping 2025-03-25 12:50:35 -04:00
leds.c Bluetooth: Use led_set_brightness() in LED trigger activate() callback 2024-09-10 13:06:11 -04:00
leds.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lib.c Bluetooth: Add documentation to exported functions in lib 2023-12-22 12:54:55 -05:00
Makefile Bluetooth: Remove hci_request.{c,h} 2024-07-15 10:11:35 -04:00
mgmt.c Bluetooth: MGMT: Fix MGMT_OP_ADD_DEVICE invalid device flags 2025-05-07 12:47:53 -04:00
mgmt_config.c Bluetooth: mgmt: Use the correct print format 2021-06-26 07:12:42 +02:00
mgmt_config.h Bluetooth: mgmt: Add commands for runtime configuration 2020-06-18 13:11:03 +03:00
mgmt_util.c Bluetooth: MGMT: Remove unused mgmt_pending_find_data 2025-03-25 12:30:43 -04:00
mgmt_util.h Bluetooth: MGMT: Remove unused mgmt_pending_find_data 2025-03-25 12:30:43 -04:00
msft.c Bluetooth: Remove hci_request.{c,h} 2024-07-15 10:11:35 -04:00
msft.h Bluetooth: msft: fix slab-use-after-free in msft_do_close() 2024-05-03 13:05:28 -04:00
sco.c Bluetooth: SCO: add TX timestamping 2025-03-25 12:50:54 -04:00
selftest.c crypto: ecdh - move curve_id of ECDH from the key to algorithm name 2021-03-13 00:04:03 +11:00
selftest.h
smp.c Bluetooth: L2CAP: add TX timestamping 2025-03-25 12:50:35 -04:00
smp.h Bluetooth: use inclusive language in SMP 2021-06-26 07:12:37 +02:00