drm/vc4: Use managed KMS polling to fix UAF on unbind
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.158, 6.12.112, 6.18.54, 7.2.8
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/vc4: Use managed KMS polling to fix UAF on unbind vc4_kms_load() calls drm_kms_helper_poll_init() but the driver provides no matching drm_kms_helper_poll_fini(). The output poll work stays scheduled after unbind and runs on the freed drm_device: modprobe vc4; rmmod vc4; sleep 10 BUG: KASAN: slab-use-after-free in delayed_work_timer_fn BUG: KASAN: slab-use-after-free in drm_client_dev_hotplug [drm] Workqueue: events output_poll_execute [drm_kms_helper] Allocated by task 171: __devm_drm_dev_alloc Freed by task 262 (rmmod): drm_dev_put / component_del Use drmm_kms_helper_poll_init() so polling is finalized with the device, as other drivers do.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From c8b75bca92cbf064b9fa125fc74a85994452e935 · fixed in b6beee927e7f4e3142032ff91b2d0417cdddc0f6; From c8b75bca92cbf064b9fa125fc74a85994452e935 · fixed in cf0c4432bda37b02e7d430ff5017228ceb7caf0c; From c8b75bca92cbf064b9fa125fc74a85994452e935 · fixed in ee507691c18f9fee5d4751e295ab9a7ff31d59ae; From c8b75bca92cbf064b9fa125fc74a85994452e935 · fixed in 7f9780df677370a19b4ec9764f13b1b82073e0d9; From c8b75bca92cbf064b9fa125fc74a85994452e935 · fixed in 073a30d75f309812ed61af134f24ffef4107b13a
- Linux Linux
4.4
- KernelLinux
From 4.4.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.54; From 6.19.0 · fixed in 7.2.8