UBUNTU-CVE-2026-98309: Use After Free
In the Linux kernel, the following vulnerability has been resolved: drm/vc4: Use managed KMS polling to fix UAF on unbind vc4kmsload() calls drmkmshelperpollinit() but the driver provides no matching drmkmshelperpollfini(). The output poll work stays scheduled after unbind and runs on the freed drmdevice: # modprobe vc4; rmmod vc4; sleep 10 BUG: KASAN: slab-use-after-free in delayedworktimerfn BUG: KASAN: slab-use-after-free in drmclientdevhotplug [drm] Workqueue: events outputpollexecute [drmkmshelper] Allocated by task 171: devmdrmdevalloc Freed by task 262 (rmmod): drmdevput / componentdel Use drmmkmshelperpollinit() so polling is finalized with the device, as other drivers do.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Configuration
Replace drm_kms_helper_poll_init() in vc4_kms_load() with drmm_kms_helper_poll_init() so polling is finalized with the drm_device during unbind.
Linux kernel drm/vc4 KMS polling initialization API = drmm_kms_helper_poll_init()