CVE-2026-64460 in Linuxinfo

Summary

by MITRE • 07/25/2026

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().

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 07/25/2026

The vulnerability described involves a critical buffer overflow condition within the Linux kernel's PCI subsystem, specifically affecting the implementation of SR-IOV (Single Root I/O Virtualization) functionality. This issue occurs during the restoration of VF (Virtual Function) Resizable BAR (Base Address Register) states when the kernel attempts to read configuration registers from hardware devices that have become unresponsive or have failed to respond correctly. The flaw manifests in the sriov_restore_vf_rebar_state() function which processes VF Resizable BAR Control register values to determine how many BARs to restore and which specific BAR each iteration should address.

The technical implementation of this vulnerability stems from improper bounds checking when handling configuration read errors from PCI devices. When a device fails to respond during configuration space access, typical PCIe configuration reads return PCI_ERROR_RESPONSE values represented as 0xffffffff or ~0. The VF Resizable BAR Control register fields are only 3 bits wide, which means that when the error response is read, both the number of bars (nbars) and the bar index (bar_idx) variables evaluate to 7. This causes an out-of-bounds memory access when attempting to index into the dev->sriov->barsz[] array, which contains only PCI_SRIOV_NUM_BARS (6) entries. The undefined behavior results in a buffer overflow condition that can lead to system instability or potential exploitation.

This vulnerability directly relates to CWE-129, which describes improper validation of array index values, and specifically manifests as an array index out-of-bounds error in the kernel's PCI configuration handling code. The operational impact is significant since this occurs during normal system operation when pci_restore_state() is invoked to restore device states after power management transitions or system recovery events. The vulnerability was observed on an NVIDIA RTX PRO 1000 GPU (GB207GLM) experiencing failure during GC6 power state exit, demonstrating how hardware unreliability can trigger this kernel-level memory corruption issue.

The mitigation strategy implemented addresses the root cause by adding early termination logic when configuration reads return PCI_ERROR_RESPONSE values. This approach follows established patterns used in other parts of the kernel's PCI subsystem, specifically mirroring the guard mechanism already present in pci_restore_rebar_state() function. The solution is both safe and effective because it recognizes that a configuration read returning PCI_ERROR_RESPONSE definitively indicates the device is unreachable or non-functional, making any further restoration attempts pointless and potentially harmful. This defensive programming approach prevents the buffer overflow while maintaining system stability and preventing potential privilege escalation or denial of service conditions that could arise from such memory corruption issues.

The fix demonstrates proper adherence to kernel security principles by avoiding complex error recovery logic when hardware communication fails and instead choosing to gracefully abort operations when device unresponsiveness is detected. This approach aligns with the broader ATT&CK framework's concept of maintaining system integrity through defensive measures against configuration space manipulation attacks, particularly those targeting memory corruption vulnerabilities in kernel-level hardware abstraction layers.

Responsible

Linux

Reservation

07/19/2026

Disclosure

07/25/2026

Moderation

accepted

CPE

ready

EPSS

0.00206

KEV

no

Activities

low

Sources

Might our Artificial Intelligence support you?

Check our Alexa App!