UBUNTU-CVE-2023-52477
In the Linux kernel, the following vulnerability has been resolved: usb: hub: Guard against accesses to uninitialized BOS descriptors Many functions in drivers/usb/core/hub.c and drivers/usb/core/hub.h access fields inside udev->bos without checking if it was allocated and initialized. If usb_get_bos_descriptor() fails for whatever reason, udev->bos will be NULL and those accesses will result in a crash: BUG: kernel NULL pointer dereference, address: 0000000000000018 PGD 0 P4D 0 Oops: 0000 [#1] PREEMPT SMP NOPTI CPU: 5 PID: 17818 Comm: kworker/5:1 Tainted: G W 5.15.108-18910-gab0e1cb584e1 #1 <HASH:1f9e 1> Hardware name: Google Kindred/Kindred, BIOS Google_Kindred.12672.413.0 02/03/2021 Workqueue: usb_hub_wq hub_event RIP: 0010:hub_port_reset+0x193/0x788 Code: 89 f7 e8 20 f7 15 00 48 8b 43 08 80 b8 96 03 00 00 03 75 36 0f b7 88 92 03 00 00 81 f9 10 03 00 00 72 27 48 8b 80 a8 03 00 00 <48> 83 78 18 00 74 19 48 89 df 48 8b 75 b0 ba 02 00 00 00 4c 89 e9 RSP: 0018:ffffab740c53fcf8 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffffa1bc5f678000 RCX: 0000000000000310 RDX: fffffffffffffdff RSI: 0000000000000286 RDI: ffffa1be9655b840 RBP: ffffab740c53fd70 R08: 00001b7d5edaa20c R09: ffffffffb005e060 R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000000 R13: ffffab740c53fd3e R14: 0000000000000032 R15: 0000000000000000 FS: 0000000000000000(0000) GS:ffffa1be96540000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000018 CR3: 000000022e80c005 CR4: 00000000003706e0 Call Trace: hub_event+0x73f/0x156e ? hub_activate+0x5b7/0x68f process_one_work+0x1a2/0x487 worker_thread+0x11a/0x288 kthread+0x13a/0x152 ? process_one_work+0x487/0x487 ? kthread_associate_blkcg+0x70/0x70 ret_from_fork+0x1f/0x30 Fall back to a default behavior if the BOS descriptor isn't accessible and skip all the functionalities that depend on it: LPM support checks, Super Speed capabilitiy checks, U1/U2 states setup.
02 / AFFECTED SOFTWARE
Affected packages
23 explicit affected versions
35 explicit affected versions
50 explicit affected versions
6 explicit affected versions
12 explicit affected versions
19 explicit affected versions
6 explicit affected versions
44 explicit affected versions
30 explicit affected versions
52 explicit affected versions
41 explicit affected versions
30 explicit affected versions
37 explicit affected versions
191 explicit affected versions
7 explicit affected versions
38 explicit affected versions
78 explicit affected versions
13 explicit affected versions
75 explicit affected versions
35 explicit affected versions
1 explicit affected versions
12 explicit affected versions
18 explicit affected versions
106 explicit affected versions
24 explicit affected versions
80 explicit affected versions
13 explicit affected versions
4 explicit affected versions
23 explicit affected versions
111 explicit affected versions
1 explicit affected versions
1 explicit affected versions
21 explicit affected versions
9 explicit affected versions
16 explicit affected versions
10 explicit affected versions
35 explicit affected versions
7 explicit affected versions
12 explicit affected versions
28 explicit affected versions
12 explicit affected versions
14 explicit affected versions
7 explicit affected versions
69 explicit affected versions
12 explicit affected versions
83 explicit affected versions
91 explicit affected versions
12 explicit affected versions
80 explicit affected versions
110 explicit affected versions
7 explicit affected versions
10 explicit affected versions
178 explicit affected versions
37 explicit affected versions
13 explicit affected versions
10 explicit affected versions
17 explicit affected versions
1 explicit affected versions
21 explicit affected versions
26 explicit affected versions
13 explicit affected versions
3 explicit affected versions
1 explicit affected versions
29 explicit affected versions
72 explicit affected versions
13 explicit affected versions
41 explicit affected versions
1 explicit affected versions
67 explicit affected versions
40 explicit affected versions
83 explicit affected versions
2 explicit affected versions
33 explicit affected versions
23 explicit affected versions
10 explicit affected versions
104 explicit affected versions
11 explicit affected versions
12 explicit affected versions
127 explicit affected versions
7 explicit affected versions
12 explicit affected versions
82 explicit affected versions
2 explicit affected versions
30 explicit affected versions
22 explicit affected versions
120 explicit affected versions
38 explicit affected versions
155 explicit affected versions
141 explicit affected versions
10 explicit affected versions
26 explicit affected versions
17 explicit affected versions
1 explicit affected versions
13 explicit affected versions
127 explicit affected versions
41 explicit affected versions
16 explicit affected versions
41 explicit affected versions
31 explicit affected versions
3 explicit affected versions
81 explicit affected versions
1 explicit affected versions
2 explicit affected versions
48 explicit affected versions
51 explicit affected versions
80 explicit affected versions
12 explicit affected versions
27 explicit affected versions
27 explicit affected versions
14 explicit affected versions
1 explicit affected versions
1 explicit affected versions
85 explicit affected versions
8 explicit affected versions
2 explicit affected versions
5 explicit affected versions
8 explicit affected versions
1 explicit affected versions
10 explicit affected versions
13 explicit affected versions
71 explicit affected versions
13 explicit affected versions
36 explicit affected versions
7 explicit affected versions
82 explicit affected versions
33 explicit affected versions
10 explicit affected versions
10 explicit affected versions
12 explicit affected versions
70 explicit affected versions
44 explicit affected versions
16 explicit affected versions
3 explicit affected versions
13 explicit affected versions
26 explicit affected versions
27 explicit affected versions
37 explicit affected versions
14 explicit affected versions
38 explicit affected versions
31 explicit affected versions
9 explicit affected versions
31 explicit affected versions
11 explicit affected versions
38 explicit affected versions
8 explicit affected versions
7 explicit affected versions
12 explicit affected versions
88 explicit affected versions
42 explicit affected versions
131 explicit affected versions
110 explicit affected versions
4 explicit affected versions
1 explicit affected versions
1 explicit affected versions
36 explicit affected versions
103 explicit affected versions
13 explicit affected versions
43 explicit affected versions
37 explicit affected versions
134 explicit affected versions
155 explicit affected versions
10 explicit affected versions
8 explicit affected versions
14 explicit affected versions
71 explicit affected versions
4 explicit affected versions
60 explicit affected versions
3 explicit affected versions
1 explicit affected versions
57 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
In the Linux kernel, the following vulnerability has been resolved: usb: hub: Guard against accesses to uninitialized BOS descriptors Many functions in drivers/usb/core/hub.c and drivers/usb/core/hub.h access fields inside udev->bos without checking if it was allocated and initialized. If usb_get_bos_descriptor() fails for whatever reason, udev->bos will be NULL and those accesses will result in a crash: BUG: kernel NULL pointer dereference, address: 0000000000000018 PGD 0 P4D 0 Oops: 0000 [#1] PREEMPT SMP NOPTI CPU: 5 PID: 17818 Comm: kworker/5:1 Tainted: G W 5.15.108-18910-gab0e1cb584e1 #1 <HASH:1f9e 1> Hardware name: Google Kindred/Kindred, BIOS Google_Kindred.12672.413.0 02/03/2021 Workqueue: usb_hub_wq hub_event RIP: 0010:hub_port_reset+0x193/0x788 Code: 89 f7 e8 20 f7 15 00 48 8b 43 08 80 b8 96 03 00 00 03 75 36 0f b7 88 92 03 00 00 81 f9 10 03 00 00 72 27 48 8b 80 a8 03 00 00 <48> 83 78 18 00 74 19 48 89 df 48 8b 75 b0 ba 02 00 00 00 4c 89 e9 RSP: 0018:ffffab740c53fcf8 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffffa1bc5f678000 RCX: 0000000000000310 RDX: fffffffffffffdff RSI: 0000000000000286 RDI: ffffa1be9655b840 RBP: ffffab740c53fd70 R08: 00001b7d5edaa20c R09: ffffffffb005e060 R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000000 R13: ffffab740c53fd3e R14: 0000000000000032 R15: 0000000000000000 FS: 0000000000000000(0000) GS:ffffa1be96540000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000018 CR3: 000000022e80c005 CR4: 00000000003706e0 Call Trace: hub_event+0x73f/0x156e ? hub_activate+0x5b7/0x68f process_one_work+0x1a2/0x487 worker_thread+0x11a/0x288 kthread+0x13a/0x152 ? process_one_work+0x487/0x487 ? kthread_associate_blkcg+0x70/0x70 ret_from_fork+0x1f/0x30 Fall back to a default behavior if the BOS descriptor isn't accessible and skip all the functionalities that depend on it: LPM support checks, Super Speed capabilitiy checks, U1/U2 states setup.
05 / REFERENCES
Further evidence
- https://git.kernel.org/linus/f74a7afc224acd5e922c7a2e52244d891bbe44ee
- https://ubuntu.com/security/CVE-2023-52477
- https://ubuntu.com/security/notices/USN-7727-1
- https://ubuntu.com/security/notices/USN-7727-2
- https://ubuntu.com/security/notices/USN-7727-3
- https://ubuntu.com/security/notices/USN-7755-1
- https://ubuntu.com/security/notices/USN-7755-2
- https://ubuntu.com/security/notices/USN-7755-3
- https://www.cve.org/CVERecord?id=CVE-2023-52477