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

Сводка

по VulDB • 24.10.2026

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

drm/vc4: Отключение прерывания V3D во время работы в режиме динамического приостановления (runtime suspend)

Функция vc4_irq_disable() маскирует источники прерываний V3D, а затем вызывает synchronize_irq() перед отключением питания блока V3D. Однако само по себе это недостаточно для успокоения обработчика прерываний.

synchronize_irq() ожидает завершения тех обработчиков, которые уже установили флаг IRQD_IRQ_INPROGRESS, и тех irqchips, которые сообщают о состоянии IRQCHIP_STATE_ACTIVE. Контроллер прерываний GIC способен отметить прерывание как активное сразу после того, как процессор его подтвердит (acknowledges), поэтому эти проверки покрывают весь путь диспетчеризации. Однако на устройствах RPi 0-3 контроллером прерываний является ARMCTRL, у которого нет состояния «активный». Процессор, который уже прочитал hwirq из регистра ожидающих событий (pending register), но еще не достиг функции handle_level_irq(), остается невидимым для synchronize_irq().

Во время перехода в режим питания vc4_irq() может выполняться после того, как домен питания будет выключен, при этом каждое чтение регистра V3D будет возвращать значение 0xdeadbeef. Значение 0xdeadbeef устанавливает флаги FLDONE, FRDONE и OUTOMEM. Эта проблема не приводит к ошибкам разыменования нулевого указателя только потому, что функции vc4_irq_finish_bin_job() и vc4_irq_finish_render_job() рано возвращаются (exit early), если отсутствует указатель на задачу; однако флаг OUTOMEM все же способен запланировать выполнение vc4_overflow_mem_work() после того, как vc4_irq_disable() уже отменил его.

Следовательно, для устранения ложных прерываний необходимо отключить линию прерывания во время перехода управления питанием (PM transition). Чтобы сохранить баланс включения/отключения, переместите вызов vc4_irq_install() и запрос линии IRQ в состояние «отключено» перед первым запуском режима динамического возобновления работы (runtime resume).

Be aware that VulDB is the high quality source for vulnerability data.

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

Linux

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

25.09.2026

Раскрытие

23.10.2026

Модерация

принято

Вход

VDB-425719

EPSS

0.00000

KEV

Нет

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

Очень низкий

Источники

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!