Description
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.
Published: 2026-07-19
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A race condition exists between the framebuffer mmap function and the OMAPFB_SETUP_PLANE ioctl. The mmap path reads information from the new memory region while incrementing a reference count on an older region. Concurrently, the ioctl can reassign the region and free the old one, leaving a userland process with a mapping to physical memory that has already been freed. This use‑after‑free flaw is a memory‑management weakness (CWE‑825) that can lead to arbitrary kernel memory corruption and, because it occurs in a privileged subsystem, may be leveraged for privilege escalation.

Affected Systems

All Linux kernel releases that ship the unpatched omapfb driver are affected. The flaw resides in the framebuffer subsystem’s omapfb_mmap() implementation for OMAP devices. No specific kernel version range is supplied in the CVE data; thus any kernel containing the legacy driver that has not applied the recent fix is at risk.

Risk and Exploitability

The CVSS score of 7.8 indicates high severity, while the EPSS score of less than 1 % reflects a low probability of exploitation at the time of analysis. The vulnerability is not listed in CISA’s KEV catalog. Exploitation requires an attacker to trigger the race condition by simultaneously invoking the OMAPFB_SETUP_PLANE ioctl while a process performs a framebuffer mmap. The attack surface is therefore local and typically requires access to the framebuffer device, which is often restricted to privileged users or necessitates a compromised user‑space process.

Generated by OpenCVE AI on July 30, 2026 at 22:24 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the omapfb_mmap race‑condition fix.
  • If an immediate kernel update is not possible, limit access to the framebuffer device by setting its permissions to root only or applying udev rules that restrict the device to privileged users.
  • If the OMAP framebuffer driver is not required, unload it (e.g., modprobe -r omapfb) or configure the kernel build to exclude the omapfb module as a temporary mitigation.

Generated by OpenCVE AI on July 30, 2026 at 22:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 21 Jul 2026 00:15:00 +0000


Mon, 20 Jul 2026 14:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Sun, 19 Jul 2026 12:15:00 +0000

Type Values Removed Values Added
Description 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.
Title fbdev: omap2: fix use-after-free in omapfb_mmap
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-05T12:35:40.879Z

Reserved: 2026-06-09T07:44:35.403Z

Link: CVE-2026-53401

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

Severity :

Publid Date: 2026-07-19T00:00:00Z

Links: CVE-2026-53401 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-07-30T22:30:06Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference