Description
In the Linux kernel, the following vulnerability has been resolved: drm/v3d: Reject empty multisync extension to prevent infinite loop v3d_get_extensions() walks a userspace-provided singly-linked list of ioctl extensions without any bound on the chain length. A local user can craft a self-referential extension (ext->next == &ext) with zero in_sync_count and out_sync_count, which bypasses the existing duplicate- extension guard: if (se->in_sync_count || se->out_sync_count) return -EINVAL; The guard never fires because v3d_get_multisync_post_deps() returns immediately when count is zero, leaving both fields at zero on every iteration. The result is an infinite loop in kernel context, blocking the calling thread and pegging a CPU core indefinitely. Fix this by rejecting a multisync extension where both in_sync_count and out_sync_count are zero in v3d_get_multisync_submit_deps(). An empty multisync carries no synchronization information and serves no useful purpose, so returning -EINVAL for such an extension is the correct defense against this attack vector.
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
e4165ae8304e5ea822fbe5909dd3be5445c058b7 to < 309abbddeca0c12714721928a819ef45e5710998affectede4165ae8304e5ea822fbe5909dd3be5445c058b7 to < 4fa42a249e8cd6ed17aea04e5695b6e9001f2433affectede4165ae8304e5ea822fbe5909dd3be5445c058b7 to < 9c5164781cb388d219d8f49fa0f0b04cf86ad544affectede4165ae8304e5ea822fbe5909dd3be5445c058b7 to < fb44d589bf3148e13452185a6e772a7efbf2d684affected
Linux Linux
Default version status: affected
5.16affected0 to < 5.16unaffected6.1.176 to ≤ 6.1.*unaffected6.18.33 to ≤ 6.18.*unaffected7.0.9 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected