UBUNTU-CVE-2024-26600
In the Linux kernel, the following vulnerability has been resolved: phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP If the external phy working together with phy-omap-usb2 does not implement send_srp(), we may still attempt to call it. This can happen on an idle Ethernet gadget triggering a wakeup for example: configfs-gadget.g1 gadget.0: ECM Suspend configfs-gadget.g1 gadget.0: Port suspended. Triggering wakeup ... Unable to handle kernel NULL pointer dereference at virtual address 00000000 when execute ... PC is at 0x0 LR is at musb_gadget_wakeup+0x1d4/0x254 [musb_hdrc] ... musb_gadget_wakeup [musb_hdrc] from usb_gadget_wakeup+0x1c/0x3c [udc_core] usb_gadget_wakeup [udc_core] from eth_start_xmit+0x3b0/0x3d4 [u_ether] eth_start_xmit [u_ether] from dev_hard_start_xmit+0x94/0x24c dev_hard_start_xmit from sch_direct_xmit+0x104/0x2e4 sch_direct_xmit from __dev_queue_xmit+0x334/0xd88 __dev_queue_xmit from arp_solicit+0xf0/0x268 arp_solicit from neigh_probe+0x54/0x7c neigh_probe from __neigh_event_send+0x22c/0x47c __neigh_event_send from neigh_resolve_output+0x14c/0x1c0 neigh_resolve_output from ip_finish_output2+0x1c8/0x628 ip_finish_output2 from ip_send_skb+0x40/0xd8 ip_send_skb from udp_send_skb+0x124/0x340 udp_send_skb from udp_sendmsg+0x780/0x984 udp_sendmsg from __sys_sendto+0xd8/0x158 __sys_sendto from ret_fast_syscall+0x0/0x58 Let's fix the issue by checking for send_srp() and set_vbus() before calling them. For USB peripheral only cases these both could be NULL.
02 / AFFECTED SOFTWARE
Affected packages
9 explicit affected versions
29 explicit affected versions
41 explicit affected versions
50 explicit affected versions
6 explicit affected versions
12 explicit affected versions
18 explicit affected versions
6 explicit affected versions
50 explicit affected versions
36 explicit affected versions
57 explicit affected versions
47 explicit affected versions
36 explicit affected versions
10 explicit affected versions
43 explicit affected versions
191 explicit affected versions
7 explicit affected versions
44 explicit affected versions
84 explicit affected versions
11 explicit affected versions
63 explicit affected versions
35 explicit affected versions
3 explicit affected versions
14 explicit affected versions
18 explicit affected versions
5 explicit affected versions
94 explicit affected versions
30 explicit affected versions
86 explicit affected versions
13 explicit affected versions
4 explicit affected versions
23 explicit affected versions
99 explicit affected versions
1 explicit affected versions
21 explicit affected versions
9 explicit affected versions
16 explicit affected versions
10 explicit affected versions
41 explicit affected versions
7 explicit affected versions
12 explicit affected versions
34 explicit affected versions
12 explicit affected versions
12 explicit affected versions
7 explicit affected versions
74 explicit affected versions
12 explicit affected versions
89 explicit affected versions
97 explicit affected versions
12 explicit affected versions
85 explicit affected versions
10 explicit affected versions
10 explicit affected versions
165 explicit affected versions
37 explicit affected versions
98 explicit affected versions
11 explicit affected versions
10 explicit affected versions
23 explicit affected versions
1 explicit affected versions
27 explicit affected versions
26 explicit affected versions
13 explicit affected versions
4 explicit affected versions
1 explicit affected versions
29 explicit affected versions
78 explicit affected versions
13 explicit affected versions
47 explicit affected versions
1 explicit affected versions
73 explicit affected versions
45 explicit affected versions
89 explicit affected versions
7 explicit affected versions
33 explicit affected versions
23 explicit affected versions
10 explicit affected versions
92 explicit affected versions
11 explicit affected versions
12 explicit affected versions
115 explicit affected versions
7 explicit affected versions
12 explicit affected versions
88 explicit affected versions
2 explicit affected versions
36 explicit affected versions
28 explicit affected versions
108 explicit affected versions
44 explicit affected versions
128 explicit affected versions
10 explicit affected versions
26 explicit affected versions
23 explicit affected versions
1 explicit affected versions
13 explicit affected versions
115 explicit affected versions
47 explicit affected versions
16 explicit affected versions
47 explicit affected versions
37 explicit affected versions
3 explicit affected versions
69 explicit affected versions
1 explicit affected versions
2 explicit affected versions
54 explicit affected versions
51 explicit affected versions
68 explicit affected versions
1 explicit affected versions
12 explicit affected versions
34 explicit affected versions
25 explicit affected versions
20 explicit affected versions
1 explicit affected versions
1 explicit affected versions
72 explicit affected versions
8 explicit affected versions
8 explicit affected versions
5 explicit affected versions
8 explicit affected versions
1 explicit affected versions
10 explicit affected versions
11 explicit affected versions
77 explicit affected versions
13 explicit affected versions
41 explicit affected versions
7 explicit affected versions
70 explicit affected versions
39 explicit affected versions
10 explicit affected versions
12 explicit affected versions
12 explicit affected versions
76 explicit affected versions
44 explicit affected versions
16 explicit affected versions
3 explicit affected versions
13 explicit affected versions
26 explicit affected versions
33 explicit affected versions
37 explicit affected versions
12 explicit affected versions
38 explicit affected versions
37 explicit affected versions
9 explicit affected versions
36 explicit affected versions
11 explicit affected versions
142 explicit affected versions
44 explicit affected versions
8 explicit affected versions
7 explicit affected versions
18 explicit affected versions
75 explicit affected versions
48 explicit affected versions
119 explicit affected versions
98 explicit affected versions
4 explicit affected versions
1 explicit affected versions
1 explicit affected versions
42 explicit affected versions
91 explicit affected versions
11 explicit affected versions
43 explicit affected versions
42 explicit affected versions
122 explicit affected versions
142 explicit affected versions
10 explicit affected versions
8 explicit affected versions
14 explicit affected versions
77 explicit affected versions
4 explicit affected versions
66 explicit affected versions
9 explicit affected versions
1 explicit affected versions
45 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
In the Linux kernel, the following vulnerability has been resolved: phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP If the external phy working together with phy-omap-usb2 does not implement send_srp(), we may still attempt to call it. This can happen on an idle Ethernet gadget triggering a wakeup for example: configfs-gadget.g1 gadget.0: ECM Suspend configfs-gadget.g1 gadget.0: Port suspended. Triggering wakeup ... Unable to handle kernel NULL pointer dereference at virtual address 00000000 when execute ... PC is at 0x0 LR is at musb_gadget_wakeup+0x1d4/0x254 [musb_hdrc] ... musb_gadget_wakeup [musb_hdrc] from usb_gadget_wakeup+0x1c/0x3c [udc_core] usb_gadget_wakeup [udc_core] from eth_start_xmit+0x3b0/0x3d4 [u_ether] eth_start_xmit [u_ether] from dev_hard_start_xmit+0x94/0x24c dev_hard_start_xmit from sch_direct_xmit+0x104/0x2e4 sch_direct_xmit from __dev_queue_xmit+0x334/0xd88 __dev_queue_xmit from arp_solicit+0xf0/0x268 arp_solicit from neigh_probe+0x54/0x7c neigh_probe from __neigh_event_send+0x22c/0x47c __neigh_event_send from neigh_resolve_output+0x14c/0x1c0 neigh_resolve_output from ip_finish_output2+0x1c8/0x628 ip_finish_output2 from ip_send_skb+0x40/0xd8 ip_send_skb from udp_send_skb+0x124/0x340 udp_send_skb from udp_sendmsg+0x780/0x984 udp_sendmsg from __sys_sendto+0xd8/0x158 __sys_sendto from ret_fast_syscall+0x0/0x58 Let's fix the issue by checking for send_srp() and set_vbus() before calling them. For USB peripheral only cases these both could be NULL.
05 / REFERENCES
Further evidence
- https://git.kernel.org/linus/7104ba0f1958adb250319e68a15eff89ec4fd36d
- https://ubuntu.com/security/CVE-2024-26600
- https://ubuntu.com/security/notices/USN-6688-1
- https://ubuntu.com/security/notices/USN-6766-1
- https://ubuntu.com/security/notices/USN-6766-2
- https://ubuntu.com/security/notices/USN-6766-3
- https://ubuntu.com/security/notices/USN-6767-1
- https://ubuntu.com/security/notices/USN-6767-2
- https://ubuntu.com/security/notices/USN-6795-1
- https://ubuntu.com/security/notices/USN-6828-1
- https://ubuntu.com/security/notices/USN-6895-1
- https://ubuntu.com/security/notices/USN-6895-2
- https://ubuntu.com/security/notices/USN-6895-3
- https://ubuntu.com/security/notices/USN-6895-4
- https://ubuntu.com/security/notices/USN-6900-1
- https://ubuntu.com/security/notices/USN-6972-1
- https://ubuntu.com/security/notices/USN-6972-2
- https://ubuntu.com/security/notices/USN-6972-3
- https://ubuntu.com/security/notices/USN-6972-4
- https://ubuntu.com/security/notices/USN-6976-1
- https://www.cve.org/CVERecord?id=CVE-2024-26600