Description
In the Linux kernel, the following vulnerability has been resolved: usb: free iso schedules on failed submit EHCI and FOTG210 isochronous submits build an ehci_iso_sched before linking the URB to the endpoint queue, and keep the staged schedule in urb->hcpriv until iso_stream_schedule() and the link helpers consume it. If the controller is no longer accessible, or usb_hcd_link_urb_to_ep() fails, submit jumps to done_not_linked before that handoff happens and leaks the staged schedule still attached to urb->hcpriv. Free the staged schedule from done_not_linked when submit fails before the URB is linked and clear urb->hcpriv after the free. The bug was first flagged by an experimental analysis tool we are developing for kernel memory-management bugs while analyzing v6.13-rc1. The tool is still under development and is not yet publicly available. Manual inspection confirms that the bug is still present in v7.1.1. An x86_64 allyesconfig build showed no new warnings. As we do not have an EHCI host controller with a USB isochronous device to test with, no runtime testing was able to be performed.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
8de98402652c01839ae321be6cb3054cf5735d83 to < b0d00d077f9738d215af9b50c74dffab7a1de19faffected8de98402652c01839ae321be6cb3054cf5735d83 to < be5004395dfd0b6ec310db359f887fa396fd0dd2affected8de98402652c01839ae321be6cb3054cf5735d83 to < 8890699eea19027ef6e4f9cbcf27cba5e789793faffected8de98402652c01839ae321be6cb3054cf5735d83 to < 6bc17a78a05671d303820224fb37ca339c1dc2cbaffected8de98402652c01839ae321be6cb3054cf5735d83 to < 4bb88aee6b868cbf73bf453f62497802f5fe4769affected8de98402652c01839ae321be6cb3054cf5735d83 to < b9399d25fbb34a05bbe76eeedd730f62ff2670e9affected
Linux Linux
Default version status: affected
2.6.15affected0 to < 2.6.15unaffected5.10.261 to ≤ 5.10.*unaffected6.6.145 to ≤ 6.6.*unaffected6.12.96 to ≤ 6.12.*unaffected6.18.39 to ≤ 6.18.*unaffected7.1.4 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/b0d00d077f9738d215af9b50c74dffab7a1de19f ↗
- https://git.kernel.org/stable/c/be5004395dfd0b6ec310db359f887fa396fd0dd2 ↗
- https://git.kernel.org/stable/c/8890699eea19027ef6e4f9cbcf27cba5e789793f ↗
- https://git.kernel.org/stable/c/6bc17a78a05671d303820224fb37ca339c1dc2cb ↗
- https://git.kernel.org/stable/c/4bb88aee6b868cbf73bf453f62497802f5fe4769 ↗
- https://git.kernel.org/stable/c/b9399d25fbb34a05bbe76eeedd730f62ff2670e9 ↗