CVE-2026-80785: fbdev: serialize mode sysfs access with lock_fb_info()
In the Linux kernel, the following vulnerability has been resolved:
fbdev: serialize mode sysfs access with lockfbinfo()
showmode(), showmodes(), and storemode() access fbinfo->modelist and fbinfo->mode without holding lockfbinfo(). storemodes() takes lockfbinfo() while replacing the modelist and freeing the old one.
A concurrent reader or writer can load a pointer to an old modelist entry before storemodes() frees it, then dereference freed memory or store a stale freed pointer in fbinfo->mode.
Take lockfbinfo() in showmode(), showmodes(), and storemode() to serialize with storemodes(). In showmode(), copy the mode to the stack and format after dropping the lock. In storemode(), split activate() into a locked variant to avoid double-locking, and hold the locks for the modelist walk, mode conversion, activation, and fbinfo->mode assignment together.
Affected Software
Event History
Frequently Asked Questions
What conditions are required to trigger the issue?
The vulnerable path requires concurrent access to framebuffer mode sysfs operations. In particular, show_mode(), show_modes(), or store_mode() must race with store_modes() replacing and freeing the framebuffer modelist.
What can the race cause?
A concurrent operation can dereference a freed modelist entry or save a stale freed pointer in fb_info->mode. This is a use-after-free condition involving framebuffer mode data.
How can I tell whether a system is affected?
Assess the kernel source or applied stable commits for the locking changes to show_mode(), show_modes(), and store_mode() using lock_fb_info(). The referenced stable commits contain the resolved implementation.