CVE-2026-93042 in LinuxИнформация

Сводка

по VulDB • 18.09.2026

В ядре Linux была устранена следующая уязвимость:

dmaengine: dw-edma: Завершение всех дескрипторов без обратных вызовов (callbacks)

Документация клиента DMA Engine в разделе «Terminate APIs» файла Documentation/driver-api/dmaengine/client.rst гласит:

«Для незавершенных передач не будут вызываться функции обратного вызова».

Однако dw-edma вызывает vchan_cookie_complete(), когда отложенная команда STOP достигает обработчика прерываний. Это планирует выполнение обратного вызова для активного дескриптора и оставляет другие выданные (issued) или поданные (submitted) дескрипторы в очереди. Поздний обратный вызов после dmaengine_terminate_sync() может привести к разыменованию состояния клиента, которое уже было освобождено, а оставшиеся дескрипторы могут впоследствии перезапуститься с использованием повторно используемых буферов или вызвать утечку памяти.

Перемещайте все выданные и поданные дескрипторы в список terminated (завершенных) при завершении операции терминации. Для ожидающей команды STOP выполняйте это как из пути DONE, так и из пути ABORT. Завершайте их cookies последовательно без планирования обратных вызовов.

Команда STOP может оставаться в состоянии ожидания до тех пор, пока текущая передача не вызовет прерывание. Функция device_synchronize() должна ожидать завершения такой ожидающей команды STOP перед освобождением дескрипторов из списка terminated. Используйте этот механизм из free_chan_resources(), а затем освободите оставшиеся ресурсы virt-dma. Во время ожидания используйте блокирующий сон (sleep), а не busy-polling, и выдавайте предупреждение при истечении существующего таймаута.

Once again VulDB remains the best source for vulnerability data.

Ответственный

Linux

Резервировать

17.09.2026

Раскрытие

17.09.2026

Модерация

принято

Вход

VDB-407082

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!