В ядре Linux устранена уязвимость: media: ivsc: Исправлен сбой при завершении работы из-за отсутствия вызовов mei_cldev_disable() В драйвер…
В ядре Linux устранена уязвимость: media: ivsc: Исправлен сбой при завершении работы из-за отсутствия вызовов mei_cldev_disable() В драйверах ACE и CSI отсутствует вызов mei_cldev_disable() в функции remove(). Это приводит к тому, что клиент mei_cl остается в списке mei_device->file_list даже после освобождения его памяти в функции mei_cl_bus_dev_release(), вызывающей kfree(cldev->cl). Это приводит к использованию памяти после освобождения при выполнении mei_vsc_remove(), вызывающей mei_stop(), которая сначала удаляет все устройства шины mei, вызывая mei_ace_remove() и mei_csi_remove(), затем вызывает mei_cl_bus_dev_release(), и, наконец, вызывает mei_cl_all_disconnect(), которая проходит по списку mei_device->file_list и разыменовывает уже освобожденную память cldev->cl. Функция mei_vsc_remove() вызывается при завершении работы из-за вызова platform_device_unregister(tp->pdev) в vsc_tp_shutdown(). При сборке ядра с KASAN это приводит к следующему отчету KASAN [1]: [ 106.634504] ================================================================== [ 106.634623] BUG: KASAN: slab-use-after-free in mei_cl_set_disconnected (drivers/misc/mei/client.c:783) mei ... Добавлены отсутствующие вызовы mei_cldev_disable(), чтобы удалить mei_cl из списка mei_device->file_list до его освобождения. Источники: - [1] https://git.kernel.org/stable/c/3c0e4cc4f55f9a1db2a761e4ffb27c9594245888 - [2] https://git.kernel.org/stable/c/639f5b33fcd7c59157f29b09f6f2866eacf9279c - [3] https://git.kernel.org/stable/c/1dfe73394dcfc9b049c8da0dc181c45f156a5f49 - [4] https://git.kernel.org/stable/c/0c92c49fc688cfadacc47ae99b06a31237702e9e
Продукт повторно использует или ссылается на память после её освобождения. В какой-то момент эта память может быть выделена повторно и сохранена в другом указателе, тогда как исходный указатель на освобождённую память используется вновь. Поскольку теперь по этому адресу может храниться посторонний объект, исходное использование указателя может привести к повреждению памяти или иным непреднамеренным последствиям. Если новая структура данных содержит указатель на функцию, то при исполнении может быть вызван код, контролируемый злоумышленником.
https://cwe.mitre.org/data/definitions/416.html →Открыть в коллекции CWE →| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux-5.10 | Отслеживается | |
| linux-5.10 | Отслеживается | |
| linux-allwinner-5.19 | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается |