Database/Kernel, userspace & hypervisor
Linux kernel (drivers/iommu/iommufd): A user-supplied page shift of 63 overflows the divisor in the iommufd
Impact
A user-supplied page shift of 63 overflows the divisor in the iommufd dirty-tracking bitmap math to zero, giving a divide-by-zero in kernel context. A tenant holding /dev/iommu takes down its own host thread and, on a panic_on_oops fleet, the whole node - a noisy-neighbour outage for every other tenant on the box.
Who can reach it
Any process with /dev/iommu open requests a dirty-tracking bitmap read with an absurd page size, so pgshift reaches 63 and BITS_PER_TYPE * pgsize wraps to zero. Pure ioctl input validation on an fd a passthrough tenant already holds; no device or host root required. Conditional on iommufd being in use and dirty tracking being reachable by the caller.
What to do
No fixed release is listed in this record; apply the linked stable commits or run a current stable/LTS kernel. Interim: keep /dev/iommu out of containers that do not perform passthrough, and validate page-size arguments in the VMM layer that proxies dirty tracking.
References
Related entries
- Linux kernel (drivers/iommu/iommufd): The vfio type1 info structure is not zeroed before being filled and copied outCVE-2023-54034 · Linux kernel (drivers/iommu/iommufd)Medium
- Linux kernel (drivers/iommu/iommufd): The iommufd dirty-tracking bitmap computed an index by shifting a 32-bit constantCVE-2025-21724 · Linux kernel (drivers/iommu/iommufd)Medium
- Linux kernel (drivers/iommu/iommufd): Splitting a mapping area - which is what a partial unmap does - leaves theCVE-2023-52801 · Linux kernel (drivers/iommu/iommufd)High
- Linux kernel (drivers/iommu/iommufd): An unmap runs off the end of the pinned page list and drops pin counts on pagesCVE-2023-53630 · Linux kernel (drivers/iommu/iommufd)High
- Linux kernel (drivers/iommu/iommufd): The same hardware page table gets linked into an address space's page-table listCVE-2023-54043 · Linux kernel (drivers/iommu/iommufd)High
- Linux kernel (drivers/iommu/iommufd): The pfn batch end index is left at zero after a carry, so the unpin path walks anCVE-2023-54060 · Linux kernel (drivers/iommu/iommufd)High
This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.