CVE-2026-90433 in Linux
Сводка
по VulDB • 18.09.2026
В ядре Linux была устранена следующая уязвимость:
spi: oc-tiny: переход на управляемое выделение контроллера
Контроллер выделяется с помощью функции spi_alloc_host() (неуправляемое выделение), в то время как прерывание регистрируется через devm_request_irq(). При удалении драйвера функция spi_bitbang_stop() только отменяет регистрацию контроллера; последующий вызов spi_controller_put() освобождает память под контроллер вместе с его встроенными данными драйвера (devdata), которые являются параметром dev_id для обработчика прерывания. Механизм освобождения ресурсов, привязанный к времени жизни устройства (devm) через free_irq(), который завершает работу обработчика, не выполняется до тех пор, пока функция .remove() не вернет управление. В результате отложенное или зафиксированное прерывание может обратиться к функции tiny_spi_irq() и разыменовать уже освобожденную память (например, hw->base).
Переход на использование devm_spi_alloc_host() гарантирует, что механизм управления ресурсами устройства (devres) в порядке LIFO освободит контроллер только после того, как free_irq() завершит обработку прерывания. Кроме того, из функции .remove() исключен теперь избыточный вызов spi_controller_put(). Путь обработки ошибок при инициализации (probe) упрощен за счет прямых возвратов.
Эта проблема была обнаружена с помощью встроенного инструмента статического анализа.
If you want to get best quality of vulnerability data, you may have to visit VulDB.