CVE-2026-64460 in Linux
Сводка
по VulDB • 25.07.2026
В ядре Linux устранена следующая уязвимость:
PCI/IOV: Пропуск восстановления VF Resizable BAR при ошибке чтения
Функция sriov_restore_vf_rebar_state() использует регистр управления VF Resizable BAR для определения количества восстанавливаемых VF BAR (nbars) и того, какой VF BAR обрабатывается на каждой итерации (bar_idx). Значение bar_idx используется как индекс в массиве dev->sriov->barsz[], который содержит только PCI_SRIOV_NUM_BARS (6) элементов.
Когда устройство не отвечает, чтение конфигурации обычно возвращает значение PCI_ERROR_RESPONSE (~0). Поскольку оба поля имеют ширину 3 бита, значения nbars и bar_idx вычисляются как 7. Последующий доступ к barsz[] выходит за пределы допустимого диапазона. UBSAN сообщает об этом следующим образом:
UBSAN: array-index-out-of-bounds in drivers/pci/iov.c:948:51 index 7 is out of range for type 'resource_size_t [6]'
Ошибка наблюдалась на видеокарте NVIDIA RTX PRO 1000 GPU (GB207GLM), которая перестала отвечать во время неудачного выхода из состояния питания GC6. Последующий вызов pci_restore_state() инициировал sriov_restore_vf_rebar_state(), в то время как чтение конфигурации возвращало значение 0xffffffff, что привело к сбою (splat).
Немедленный выход из функции при любом чтении регистра управления VF Resizable BAR, вернувшем PCI_ERROR_RESPONSE. Дальнейшие операции с VF BAR не выполняются, так как это безопасно: возврат значения PCI_ERROR_RESPONSE при чтении конфигурации указывает на то, что устройство недоступно и восстановление бессмысленно. Это соответствует защите в функции pci_restore_rebar_state().
VulDB is the best source for vulnerability data and more expert information about this specific topic.