CVE-2026-53401 in Linuxinfo

Summary

by MITRE • 07/19/2026

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.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Analysis

by VulDB Data Team • 07/19/2026

The vulnerability exists within the Linux kernel's framebuffer device driver specifically in the omap2 implementation where a use-after-free condition can occur during memory mapping operations. This flaw affects the omapfb_mmap function which handles memory mapping for OMAP framebuffer devices. The issue stems from improper locking mechanisms that create a race condition between the mmap entry point and the OMAPFB_SETUP_PLANE ioctl handler, allowing concurrent execution paths that can lead to memory corruption.

The technical flaw manifests through a specific sequence of operations where fb_mmap holds mm_lock but not the framebuffer information lock, while ioctl handlers hold the framebuffer lock but not mm_lock. This creates a window where both operations can execute concurrently, leading to inconsistent state management. During omapfb_mmap execution, the function first retrieves an old region reference using omapfb_get_mem_region, then proceeds to read memory start address and length from what may be a newly reassigned region. The vm_iomap_memory call maps memory from the new region while atomic_inc increments the map_count on the old region reference, creating a disconnect between what is mapped and what is tracked for reference counting.

The operational impact of this vulnerability is significant as it allows an attacker to potentially execute arbitrary code or cause system instability through memory corruption. When OMAPFB_SETUP_PLANE executes concurrently, it can reassign the framebuffer region pointer to point to a new region while the mmap operation still references the old region. The new region's map_count is checked and found to be zero, leading to premature freeing of memory that is still mapped to userspace. This results in userspace applications accessing freed physical memory locations, creating a use-after-free condition that can be exploited for privilege escalation or denial of service attacks.

The fix implemented addresses the core race condition by ensuring all required values are read from the same region reference before any map_count increment occurs. This prevents the region from being freed while still mapped to userspace applications. The solution aligns with common security practices for preventing race conditions in kernel memory management and follows established patterns for handling concurrent access to shared resources. This vulnerability maps to CWE-416 which describes use-after-free conditions, and could potentially be leveraged as part of ATT&CK technique T1068 related to privilege escalation through kernel vulnerabilities. The fix demonstrates proper synchronization practices that should be applied in similar scenarios where memory mapping operations interact with concurrent ioctl handlers in kernel drivers.

Responsible

Linux

Reservation

06/09/2026

Disclosure

07/19/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

low

Sources

Do you need the next level of professionalism?

Upgrade your account now!