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

Сводка

по VulDB • 25.07.2026

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

iio: adc: lpc32xx: Инициализация completion перед запросом прерывания (IRQ)

В отчете Jaeyoung Chung указано следующее:

«Функция `lpc32xx_adc_probe()` в файле `drivers/iio/adc/lpc32xx_adc.c` регистрирует свой обработчик прерываний с помощью `devm_request_irq()`, прежде чем инициализирует поле `st->completion` вызовом `init_completion()`. Если прерывание поступает после выполнения `devm_request_irq()` и до завершения работы `init_completion()`, обработчик вызывает функцию `complete()` для неинициализированного объекта completion, что приводит к панике ядра (kernel panic).

Путь вызова probe в функции `lpc32xx_adc_probe()`:

iodev = devm_iio_device_alloc(&pdev->dev, sizeof(*st)); /* st инициализируется нулями через kzalloc */ ... retval = devm_request_irq(&pdev->dev, irq, lpc32xx_adc_isr, 0, LPC32XXAD_NAME, st); /* регистрация обработчика */ ... init_completion(&st->completion); /* инициализация completion */

Функция `lpc32xx_adc_isr()` вызывает `complete()`:

complete(&st->completion);

Если устройство генерирует прерывание до того, как выполнится `init_completion()`, функция `complete()` получает доступ к неинициализированному мьютексу `wait.lock` и обходит список задач (`task_list`) со значениями по умолчанию (нулями) внутри функции `swake_up_locked()`. Поскольку нулевой `task_list` заставляет функцию `list_empty()` вернуть false, функция `swake_up_locked()` разыменовывает NULL-указатель на элемент списка, что вызывает ошибку KASAN: несанкционированный доступ к памяти.

Для устранения вероятности ложного срабатывания прерывания (spurious IRQ), приводящего к разыменованию неинициализированного указателя, перемещен вызов `init_completion()` выше строки с `devm_request_irq()`.»

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

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

Linux

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

19.07.2026

Раскрытие

25.07.2026

Модерация

принято

Вход

VDB-383298

EPSS

0.00165

KEV

Нет

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

Очень низкий

Источники

Do you want to use VulDB in your project?

Use the official API to access entries easily!