Description (CNA)
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 (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected e36ba5ab808ef6237c3148d469c8238674230e2b before 779480ea79551c31964e74b9aef0e730faa3aa11; affected e36ba5ab808ef6237c3148d469c8238674230e2b before 6c5fc40200cd0a87d66a368eee00df4d1cca946e; affected e36ba5ab808ef6237c3148d469c8238674230e2b before 47443565d10c51366c9382dbc8597cd6c460b8a2 |
| Linux / Linux | affected 6.15; unaffected 0 before 6.15; unaffected 6.18.40 through 6.18.*; unaffected 7.1.4 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.