CVE-2026-64474: vfio: prevent infinite loop in vfio_mig_get_next_state() on blocked arc
In the Linux kernel, the following vulnerability has been resolved:
vfio: prevent infinite loop in vfiomiggetnextstate() on blocked arc
vfiomiggetnextstate() walks vfiofromfsmtable[] one step at a time, looping to skip optional states the device does not support until nextfsm is supported. A blocked transition is encoded as VFIODEVICESTATEERROR, which the trailing return reports as -EINVAL.
The skip loop does not account for the ERROR sentinel. stateflagstable[ERROR] is ~0U and vfiofromfsmtable[ERROR][] is ERROR, so once nextfsm becomes ERROR the loop condition stays true and nextfsm never changes. The blocked arcs STOPCOPY -> PRECOPY and STOPCOPY -> PRECOPYP2P map to ERROR yet pass the support check on a precopy-capable device, causing the loop to spin forever while holding the driver state mutex. This can result in a soft lockup, and a panic with softlockuppanic set.
Terminate the skip loop on the ERROR sentinel so a blocked transition falls through to the existing return and reports -EINVAL.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 6.6.145.2-1
Event History
Frequently Asked Questions
What is the severity of CVE-2026-64474?
CVE-2026-64474 has a risk rating of 23, indicating a significant severity level.
How do I fix CVE-2026-64474?
To fix CVE-2026-64474, update your Linux kernel to the latest version where this vulnerability has been patched.
What systems are affected by CVE-2026-64474?
CVE-2026-64474 affects the Linux kernel, specifically those utilizing the vfio subsystem.
What type of vulnerability is CVE-2026-64474?
CVE-2026-64474 is a programming defect that could lead to an infinite loop within the vfio_mig_get_next_state() function.
When was CVE-2026-64474 published?
CVE-2026-64474 was published on July 25, 2026.