{"id":"CVE-2026-64289","summary":"iommufd: Set upper bounds on cache invalidation entry_num and entry_len","details":"In the Linux kernel, the following vulnerability has been resolved:\n\niommufd: Set upper bounds on cache invalidation entry_num and entry_len\n\niommufd_hwpt_invalidate() takes a user-controlled entry_num and entry_len,\neach bounded only by U32_MAX. An entry_len beyond the kernel's struct size\nmakes the copy helper verify the extra bytes are zero, scanning that excess\nin one uninterruptible pass; a multi-gigabyte value over zeroed user memory\ntrips the soft-lockup watchdog.\n\nA large entry_num is the other half, driving the backend invalidation loop\nwith no reschedule. The VT-d nested handler, for one, copies each entry and\nflushes caches per iteration, pinning the CPU on a non-preemptible kernel.\n\nCap both in the ioctl. entry_len is held under PAGE_SIZE, above any request\nstruct, and entry_num under 1 \u003c\u003c 19, the order of a hardware invalidation\nqueue and well beyond any real batch, bounding the per-call loop length.","modified":"2026-07-27T04:03:21.024438587Z","published":"2026-07-25T08:49:29.434Z","database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64289.json"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/2c6381d90898089287e0a358f06f89f6b4b389f2"},{"type":"WEB","url":"https://git.kernel.org/stable/c/32ca4aed2a66205b072fcfecabe220289a8149ff"},{"type":"WEB","url":"https://git.kernel.org/stable/c/4d70986002f2f3eaaed89124fb2522bded38b016"},{"type":"WEB","url":"https://git.kernel.org/stable/c/d2bd041e0efaf7d81789779b135279d18b33d6d5"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64289.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64289"},{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"8c6eabae3807e048b9f17733af5e20500fbf858c"},{"fixed":"d2bd041e0efaf7d81789779b135279d18b33d6d5"},{"fixed":"32ca4aed2a66205b072fcfecabe220289a8149ff"},{"fixed":"2c6381d90898089287e0a358f06f89f6b4b389f2"},{"fixed":"4d70986002f2f3eaaed89124fb2522bded38b016"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64289.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.8.0"},{"fixed":"6.12.96"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.0"},{"fixed":"6.18.39"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.1.4"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64289.json"}}],"schema_version":"1.7.5"}