Bug 201253 - NULL pointer dereference in debugfs LE encryption key size
Summary: NULL pointer dereference in debugfs LE encryption key size
Status: RESOLVED CODE_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: Bluetooth (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: linux-bluetooth@vger.kernel.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-09-27 07:01 UTC by ValdikSS
Modified: 2019-03-10 22:11 UTC (History)
2 users (show)

See Also:
Kernel Version: 4.18.9
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description ValdikSS 2018-09-27 07:01:51 UTC
Functions le_max_key_size_read, le_min_key_size_read, le_max_key_size_write and le_min_key_size_write in net/bluetooth/smp.c dereference null pointer to hdev if Bluetooth adapter is powered off.

># cat /sys/kernel/debug/bluetooth/hci0/le_max_key_size

BUG: unable to handle kernel NULL pointer dereference at 00000000000002e8
PGD 0 P4D 0 
Oops: 0000 [#24] SMP PTI
CPU: 2 PID: 6255 Comm: cat Tainted: G      D    OE     4.18.9-200.fc28.x86_64 #1
Hardware name: LENOVO 4286CTO/4286CTO, BIOS 8DET76WW (1.46 ) 06/21/2018
RIP: 0010:le_max_key_size_read+0x45/0xb0 [bluetooth]
Code: 00 00 00 48 83 ec 10 65 48 8b 04 25 28 00 00 00 48 89 44 24 08 31 c0 48 8b 87 c8 00 00 00 48 8d 7c 24 04 48 8b 80 48 0a 00 00 <48> 8b 80 e8 02 00 00 0f b6 48 52 e8 fb b6 b3 ed be 04 00 00 00 48 
RSP: 0018:ffffab23c3ff3df0 EFLAGS: 00010246
RAX: 0000000000000000 RBX: 00007f0b4ca2e000 RCX: ffffab23c3ff3f08
RDX: ffffffffc0ddb033 RSI: 0000000000000004 RDI: ffffab23c3ff3df4
RBP: 0000000000020000 R08: 0000000000000000 R09: 0000000000000000
R10: ffffab23c3ff3ed8 R11: 0000000000000000 R12: ffffab23c3ff3f08
R13: 00007f0b4ca2e000 R14: 0000000000020000 R15: ffffab23c3ff3f08
FS:  00007f0b4ca0f540(0000) GS:ffff91bd5e280000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000000000002e8 CR3: 00000000629fa006 CR4: 00000000000606e0
Call Trace:
 full_proxy_read+0x53/0x80
 __vfs_read+0x36/0x180
 vfs_read+0x8a/0x140
 ksys_read+0x4f/0xb0
 do_syscall_64+0x5b/0x160
 entry_SYSCALL_64_after_hwframe+0x44/0xa9
Comment 1 Matias Karhumaa 2018-09-29 19:53:12 UTC
Thank you for reporting a bug. I have prepared a fix and it has been applied to bluetooth-next tree.

https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/commit/?id=30d65e0804d58a03d1a8ea4e12c6fc07ed08218b
Comment 2 ValdikSS 2019-01-18 07:37:28 UTC
Should it be applied to current LTS 4.19? The bug is still in 4.19.13.
Comment 3 ValdikSS 2019-03-10 22:11:20 UTC
As for 4.20.13, this bug is fixed.

Note You need to log in before you can comment on or make changes to this bug.