В ядре Linux устранена следующая уязвимость:
usb: гаджет: uvc: исправление свисающих указателей в uvc_function_bind() и uvc_function_unbind()
В пути ошибки uvc_function_bind() мы используем usb_ep_free_request, который
использует uvc->control_req, но впоследствии не устанавливает для него значение NULL. Таким образом,
uvc->control_req — это висячий указатель, вызывающий UAF. Также мы не устанавливаем
указатель uvc->control_buf равен NULL после его освобождения, что является еще одним
висящий указатель.
Исправьте это, установив для uvc->control_req значение NULL после запуска.
usb_ep_free_request() и uvc->control_buf в NULL после kfree. Сделайте
то же самое для uvc_function_unbind().
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: usb: gadget: uvc: fix dangling pointers in uvc_function_bind() and uvc_function_unbind() In uvc_function_bind() error path, we use usb_ep_free_request which uses uvc->control_req but does not set it to NULL afterwards. Thus, uvc->control_req is a dangling pointer causing a UAF. Also we do not set the uvc->control_buf pointer to NULL after freeing it, which is another dangling pointer. Fix it by setting uvc->control_req to NULL after we run usb_ep_free_request() and uvc->control_buf to NULL after kfree. Do the same for uvc_function_unbind().
Характеристики атаки
Последствия
Строка CVSS v3.1
Уязвимые продукты 7
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.8
|
6.12.109
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.8
|
6.18.50
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.8
|
7.2.4
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.8
|
7.3-rc1
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.2.36
|
— |
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.4.25
|
— |
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.7.2
|
— |