CVE-2026-53401
High · 7.8CVSS
7.8
EPSS
0.1%
Published
Jul 19, 2026
CISA due date
—
Cloudanix analysis
A flaw in certain Linux display drivers can let someone who already has local access tamper with system memory or crash the device.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
This is a race-condition use-after-free in the Linux kernel OMAP2 framebuffer driver. The vulnerable mmap path can take a reference to one framebuffer memory region while concurrently reading mapping parameters from a different region changed through OMAP framebuffer ioctls. Under the right timing, userspace can receive a mapping to physical memory that the kernel subsequently treats as free. Because this occurs in kernel-managed device memory, a local attacker with access to the affected framebuffer device can potentially read or modify unintended memory or trigger kernel instability, leading to confidentiality, integrity, and availability impact.
Why it matters to the business
Systems using affected Linux kernels with the OMAP2 framebuffer driver exposed to local users or sandboxed workloads may be vulnerable to local privilege escalation, data exposure, or denial of service. The practical risk is highest on embedded, mobile, industrial, or appliance-like systems that use OMAP display hardware and expose framebuffer device nodes to non-root processes. EPSS is currently low and there is no known KEV listing or public exploit maturity reported, but kernel memory-corruption issues should still be prioritized where the affected driver is present because successful exploitation can undermine host isolation and system trust.
How an attack unfolds
An attacker first needs local code execution and permission to access the affected framebuffer device, typically through a device node such as a framebuffer interface backed by the OMAP2 fbdev driver. The attacker then races two operations from userspace: one thread repeatedly calls mmap on the framebuffer while another issues OMAP framebuffer ioctls that reconfigure the plane or backing memory region. In the vulnerable sequence, the mmap path can obtain a reference to an old region while using start address and length values from a newly assigned region. A subsequent memory setup operation may observe that the new region has no active mappings and free it, even though userspace has just mapped it. The attacker is left with a mapping to freed physical memory, which may be reused by the kernel or device subsystem. With careful heap or memory-reuse manipulation, this can potentially be converted into unauthorized reads, writes, privilege escalation, or a controlled kernel crash.
How to fix it
Upgrade to a kernel version that includes the upstream fix for the OMAP2 framebuffer omapfb_mmap use-after-free. Where vendor kernels are used, apply the distribution, device vendor, or BSP security update that backports the fix. If immediate patching is not possible, reduce exposure by disabling or unloading the OMAP2 framebuffer driver where not required, preventing untrusted users from accessing framebuffer device nodes, removing nonessential local shell or application access, and enforcing device cgroup, container, udev, or file-permission controls so only trusted privileged services can open the affected framebuffer interface. On embedded systems, include the fix in firmware images and verify that downstream kernel forks have not retained the vulnerable driver logic.
How to confirm the fix worked
Confirm remediation by checking that the running kernel package or firmware build includes the vendor advisory or upstream patch for the OMAP2 fbdev omapfb_mmap race fix. Validate that the affected driver is absent, disabled, or updated by inspecting loaded modules, kernel configuration, and device presence for OMAP framebuffer support. Confirm that framebuffer device nodes are not writable or mappable by untrusted users. For high-assurance validation, review the patched source or vendor diff to ensure omapfb_mmap reads the physical start address and length from the same memory-region reference whose map_count is incremented. Reboot into the fixed kernel and verify the active kernel version rather than only the installed package version.
Typical attack path
- Gain local execution on a Linux system using the affected OMAP2 framebuffer driver.
- Confirm access to the framebuffer device and relevant OMAP framebuffer ioctls.
- Start one execution thread repeatedly invoking framebuffer mmap operations.
- Start another execution thread repeatedly issuing OMAPFB_SETUP_PLANE and related memory setup ioctls to reassign framebuffer regions.
- Win the race so mmap maps memory from a region that is later freed because its map count was not incremented consistently.
- Use the stale userspace mapping to read or modify reused physical memory, or trigger a kernel crash.
- If feasible, shape memory reuse to escalate privileges or bypass local isolation controls.
How to detect it
There are no public, unique exploitation indicators for this vulnerability, and successful exploitation may leave little evidence beyond local device access, kernel warnings, crashes, or anomalous process behavior. Security teams should review auditd, eBPF, EDR, syslog, kernel logs, and device-access telemetry for untrusted or unexpected processes opening framebuffer devices, performing mmap operations, or issuing OMAP framebuffer ioctls at high frequency. Look for kernel oops, panic, use-after-free, page fault, general protection fault, KASAN, KFENCE, or slab corruption messages involving omapfb, fbdev, omapfb_mmap, OMAPFB_SETUP_PLANE, or OMAPFB_SETUP_MEM. On systems with syscall auditing, correlate open/openat of framebuffer device nodes with ioctl and mmap activity from unusual users, containers, or application contexts. Forensic review should include recently executed local binaries, crash dumps, kernel ring buffer history, and changes in device-node permissions that may have increased framebuffer exposure.
- /dev/fb0
- /dev/fb1
- omapfb
- omapfb_mmap
- OMAPFB_SETUP_PLANE
- OMAPFB_SETUP_MEM
- fb_mmap
- use-after-free
- KASAN: use-after-free
- KFENCE: use-after-free
- BUG: kernel NULL pointer dereference
- general protection fault
- kernel panic
- Oops
- slab-use-after-free
What your security team should do
- Inventory Linux systems, appliances, and embedded devices that use OMAP/OMAP2 display hardware or enable the OMAP framebuffer driver.
- Prioritize patching systems where local users, containers, kiosks, browsers, media applications, or third-party code can access framebuffer devices.
- Apply vendor kernel or firmware updates that include the omapfb_mmap race-condition fix; ensure the patched kernel is actually running after reboot.
- Restrict access to framebuffer device nodes to trusted privileged users and services only.
- Disable the OMAP2 framebuffer driver or fbdev support where the hardware path is unused.
- Monitor for suspicious local processes opening framebuffer devices and issuing repeated mmap/ioctl activity.
- For embedded products, ensure downstream BSPs and long-term support kernel branches have backported the fix before shipping firmware updates.
The record
In the Linux kernel, the following vulnerability has been resolved: fbdev: omap2: fix use-after-free in omapfb_mmap omapfb_mmap() has a race condition with OMAPFB_SETUP_PLANE ioctl that can lead to use-after-free: The fb_mmap() entry point holds mm_lock but not lock (fb_info->lock), while ioctl handlers like OMAPFB_SETUP_PLANE hold lock but not mm_lock. This allows concurrent execution. In omapfb_mmap(): 1. rg = omapfb_get_mem_region(ofbi->region); // Get old region ref 2. start = omapfb_get_region_paddr(ofbi); // Read from NEW region 3. len = fix->smem_len; // Read from NEW region 4. vm_iomap_memory(vma, start, len); // Map NEW region memory 5. atomic_inc(&rg->map_count); // Increment OLD region! Concurrently, OMAPFB_SETUP_PLANE can: - Reassign ofbi->region = new_rg - Update fix->smem_len - OMAPFB_SETUP_MEM then checks NEW region's map_count (0!) and frees it This leaves userspace with a mapping to freed physical memory. The fix is to read all required values (start, len) from the same region reference (rg) that will have its map_count incremented, preventing the region from being freed while still mapped.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-119338 Tesseract is an open source OCR engine. CWE-416
- CVE-2026-119332 Ladybird is a truly independent web browser. CWE-416
- CVE-2026-119116 A use-after-free and double-free issue in the SetClient command handler of the… CWE-416
- CVE-2026-119378 SQLite before 3.54.0 contains a use-after-free vulnerability in the R-Tree extension that… CWE-416
- CVE-2026-119372 SQLite before 3.54.0 built with FTS3/FTS4 and SQLITE_ENABLE_FTS3_PARENTHESIS contains a… CWE-416
- CVE-2026-65586 Software installed and run as a non-privileged user may conduct improper GPU system calls… CWE-416
- CVE-2026-15466 Software installed and run as a non-privileged user may conduct improper GPU system calls… CWE-416
- CVE-2026-76031 Use after free in Input in Google Chrome prior to 156.0.8078.79 allowed a remote attacker… CWE-416