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

Сводка

по VulDB • 27.07.2026

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

vfio/pci: Фиксация значения disable_idle_d3 для каждого устройства

Когда параметр disable_idle_d3 был введен в модуле vfio-pci, он напрямую изменял состояние питания устройства с помощью функции pci_set_power_state(). Не требовалось поддерживать счетчики ссылок (refcounts) или выполнять сбалансированные операции; можно было безоговорочно переводить устройство в состояние D0 и условно — в состояние D3hot. В связи с этим параметр модуля был сделан изменяемым.

Позже, в коммите c61302aa48f7 («vfio/pci: Перенос параметров модуля в vfio_pci.c») в рамках разделения кода на подсистемы vfio-pci-core возможность изменения значения параметра была отключена (сделана недоступной для записи через стандартные механизмы). Значение параметра по-прежнему можно было изменить через sysfs, однако драйвер vfio-pci фиксировал эти значения в глобальных переменных vfio-pci-core при инициализации модуля. Загрузка модуля vfio-pci или его выгрузка и повторная загрузка со значениями, отличными от значений по умолчанию, могли изменить состояние этих глобальных переменных относительно уже привязанных к драйверам семейства vfio-pci устройств.

Поддержка управления питанием во время работы (Runtime PM) была добавлена в коммите 7ab5e10eda02 («vfio/pci: Перевод неиспользуемого устройства в состояние низкого энергопотребления с помощью Runtime PM»), что стало моментом, когда состояния питания стали учитываться через счетчики ссылок. Операции получения (get) и освобождения (put) ресурсов управления питанием должны быть сбалансированы, однако описанные выше операции загрузки/выгрузки модуля могут изменять глобальные переменные относительно устройств, уже привязанных к драйверам семейства vfio-pci. Это создает ситуацию, при которой баланс операций PM может нарушиться.

Для устранения проблемы с минимальным воздействием на код (narrow footprint) для стабильных обратных портирований (backports), флаг disable_idle_d3 фиксируется в структуре vfio_pci_core_device во время инициализации, что гарантирует согласованное значение при работе устройства.

Примечание: функция vfio_pci_dev_set_try_reset() теперь безоговорочно увеличивает счетчик использования Runtime PM вокруг операции сброса шины (bus reset), чтобы учесть переход disable_idle_d3 из глобального флага в флаг на уровне каждого устройства. При установленном флаге дополнительная пара операций get/put является безопасной и позволяет продолжать использовать вспомогательную функцию vfio_pci_dev_set_pm_runtime_get().

If you want to get best quality of vulnerability data, you may have to visit VulDB.

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

Linux

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

19.07.2026

Раскрытие

25.07.2026

Модерация

принято

Вход

VDB-383254

EPSS

0.00180

KEV

Нет

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

Очень низкий

Источники

Want to stay up to date on a daily basis?

Enable the mail alert feature now!