Ad

CVE-2026-64460

HIGH CVSS 3.1: 7,0 EPSS 0.12%
Обновлено 27 июля 2026
Nvidia
Параметр Значение
CVSS 7,0 (HIGH)
Поставщик Nvidia
Публичный эксплойт Нет

В ядре 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.

Тогда доступ barz[] выходит за пределы. УБСАН сообщает об этом как: UBSAN: индекс массива за пределами границ в драйверах/pci/iov.c:948:51, индекс 7 выходит за пределы диапазона для типа 'resource_size_t [6]' Наблюдалось на графическом процессоре NVIDIA RTX PRO 1000 (GB207GLM), который перестал отвечать на запросы. во время неудачного выхода из состояния питания GC6. Последующий pci_restore_state() вызвал sriov_restore_vf_rebar_state(), пока чтение конфигурации вернулось 0xffffffff, вызывающий удар.

Выход из строя, если какое-либо чтение элемента управления VF Resizable BAR возвращает PCI_ERROR_RESPONSE. Никакие дальнейшие полосы VF не затрагиваются, что безопасно, поскольку в конфигурации указано, что возвращает PCI_ERROR_RESPONSE, указывая, что устройство недоступно и восстанавливать бессмысленно. Это отражает охранника в pci_restore_rebar_state().

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: PCI/IOV: Skip VF Resizable BAR restore on read error sriov_restore_vf_rebar_state() uses the VF Resizable BAR Control register to decide how many VF BARs to restore (nbars) and which VF BAR each iteration addresses (bar_idx). bar_idx indexes into dev->sriov->barsz[], which has only PCI_SRIOV_NUM_BARS (6) entries. When a device does not respond, config reads typically return PCI_ERROR_RESPONSE (~0). Both fields are 3 bits wide, so nbars and bar_idx both evaluate to 7. The barsz[] access then goes out of bounds. UBSAN reports this as: 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]' Observed on an NVIDIA RTX PRO 1000 GPU (GB207GLM) that stopped responding during a failed GC6 power state exit. The subsequent pci_restore_state() invoked sriov_restore_vf_rebar_state() while config reads returned 0xffffffff, triggering the splat. Bail out if any VF Resizable BAR Control read returns PCI_ERROR_RESPONSE. No further VF BARs are touched, which is safe because a config read that returns PCI_ERROR_RESPONSE indicates the device is unreachable and restoration is pointless. This mirrors the guard in pci_restore_rebar_state().

Характеристики атаки

Способ атаки
Локальный
Нужен локальный доступ
Сложность
Высокая
Сложно эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Низкое
Частичная утечка данных
Целостность
Низкое
Частичная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1