CVE-2026-64289: iommufd: Set upper bounds on cache invalidation entry_num and entry_len
In the Linux kernel, the following vulnerability has been resolved:
iommufd: Set upper bounds on cache invalidation entrynum and entrylen
iommufdhwptinvalidate() takes a user-controlled entrynum and entrylen, each bounded only by U32MAX. An entrylen beyond the kernel's struct size makes the copy helper verify the extra bytes are zero, scanning that excess in one uninterruptible pass; a multi-gigabyte value over zeroed user memory trips the soft-lockup watchdog.
A large entrynum is the other half, driving the backend invalidation loop with no reschedule. The VT-d nested handler, for one, copies each entry and flushes caches per iteration, pinning the CPU on a non-preemptible kernel.
Cap both in the ioctl. entrylen is held under PAGESIZE, above any request struct, and entrynum under 1 << 19, the order of a hardware invalidation queue and well beyond any real batch, bounding the per-call loop length.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2026-64289?
CVE-2026-64289 has a medium severity rating of 5.5 according to the CVSS 3.1 scoring system.
How does CVE-2026-64289 impact the Linux kernel?
CVE-2026-64289 allows for user-controlled parameters that could lead to a denial of service due to improper cache invalidation handling.
How do I fix CVE-2026-64289?
To mitigate CVE-2026-64289, you should update to the patched version of the Linux kernel as recommended by your distribution.
Who is affected by CVE-2026-64289?
CVE-2026-64289 affects systems running vulnerable versions of the Linux kernel that leverage the iommufd functionality.
What is the nature of the vulnerability in CVE-2026-64289?
CVE-2026-64289 involves inadequate upper bounds on cache invalidation parameters allowing potential denial of service.