Description
In the Linux kernel, the following vulnerability has been resolved: iommufd: Move vevent memory allocation outside spinlock The veventq memory allocation happens inside the spinlock. Given its depth is decided by the user space, this leaves a vulnerability, where userspace can allocate large queues to exhaust atomic memory reserves. Move the allocation outside the spinlock and use GFP_NOWAIT, which can fail fast under memory pressure without dipping into the GFP_ATOMIC reserves or direct-reclaiming from the threaded IRQ handler. On allocation failure, queue the lost_events_header (so userspace learns of the drop) and return -ENOMEM so the caller learns of the kernel-side memory pressure. This is intentionally distinct from the queue-overflow path, which also queues the lost_events_header but returns 0: a full queue is an expected userspace-pacing condition rather than a kernel error. A subsequent change will cap the upper bound of the veventq_depth.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
e36ba5ab808ef6237c3148d469c8238674230e2b to < 779480ea79551c31964e74b9aef0e730faa3aa11affectede36ba5ab808ef6237c3148d469c8238674230e2b to < 6c5fc40200cd0a87d66a368eee00df4d1cca946eaffectede36ba5ab808ef6237c3148d469c8238674230e2b to < 47443565d10c51366c9382dbc8597cd6c460b8a2affected
Linux Linux
Default version status: affected
6.15affected0 to < 6.15unaffected6.18.40 to ≤ 6.18.*unaffected7.1.4 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected