Description
In the Linux kernel, the following vulnerability has been resolved:

fbdev: udlfb: add vm_ops to dlfb_ops_mmap to prevent use-after-free

dlfb_ops_mmap() uses remap_pfn_range() to map vmalloc framebuffer pages
to userspace but sets no vm_ops on the VMA. This means the kernel cannot
track active mmaps. When dlfb_realloc_framebuffer() replaces the backing
buffer via FBIOPUT_VSCREENINFO, existing mmap PTEs are not invalidated.
On USB disconnect, dlfb_ops_destroy() calls vfree() on the old pages
while userspace PTEs still reference them, resulting in a use-after-free:
the process retains read/write access to freed kernel pages.

Add vm_operations_struct with open/close callbacks that maintain an
atomic mmap_count on struct dlfb_data. In dlfb_realloc_framebuffer(),
check mmap_count and return -EBUSY if the buffer is currently mapped,
preventing buffer replacement while userspace holds stale PTEs.

Tested with PoC using dummy_hcd + raw_gadget USB device emulation.
Published: 2026-05-21
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability in the Linux kernel’s udlfb framebuffer driver allows a use‑after‑free condition. When a framebuffer is remapped to userspace with remap_pfn_range(), the virtual memory area is not assigned vm_ops, so the kernel cannot track active mmaps. If the underlying buffer is subsequently reallocated via FBIOPUT_VSCREENINFO, the old pages are freed while existing PTEs still reference them. A disconnect of the USB device triggering dlfb_ops_destroy() can then cause the kernel to free pages that are still mapped, resulting in a use‑after‑free that gives the process arbitrary read and write access to freed kernel memory.

Affected Systems

All Linux kernel versions that include the udlfb framebuffer driver are affected, as the patch is not present in the default kernel trees. The vulnerability applies to any distribution that enables the udlfb framebuffer path.

Risk and Exploitability

A CVSS score is not provided, and the EPSS score is not available; the vulnerability is not listed in the CISA KEV catalog. Attackers would need to manipulate a USB device that interacts with the udlfb driver (e.g., a dummy USB host controller or raw gadget emulation) to trigger the reallocation or disconnect sequence. The vulnerability is therefore likely a local threat that requires privileged or user‑space access to the affected device or kernel interface and has not been reported as a widely exploited vulnerability.

Generated by OpenCVE AI on May 21, 2026 at 13:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a release that incorporates the patch correcting the udlfb mmap tracking logic
  • If a kernel update is not immediately possible, disable the udlfb framebuffer driver by removing the module or disabling the CONFIG_FB_DUMMY option in the kernel configuration
  • For environments that use USB gadget emulation, reconfigure to use non‑emulated devices or block FBIOPUT_VSCREENINFO calls from untrusted processes
  • As a last resort, apply the upstream patch directly from the git commits referenced in the advisory

Generated by OpenCVE AI on May 21, 2026 at 13:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 21 May 2026 13:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Thu, 21 May 2026 12:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: fbdev: udlfb: add vm_ops to dlfb_ops_mmap to prevent use-after-free dlfb_ops_mmap() uses remap_pfn_range() to map vmalloc framebuffer pages to userspace but sets no vm_ops on the VMA. This means the kernel cannot track active mmaps. When dlfb_realloc_framebuffer() replaces the backing buffer via FBIOPUT_VSCREENINFO, existing mmap PTEs are not invalidated. On USB disconnect, dlfb_ops_destroy() calls vfree() on the old pages while userspace PTEs still reference them, resulting in a use-after-free: the process retains read/write access to freed kernel pages. Add vm_operations_struct with open/close callbacks that maintain an atomic mmap_count on struct dlfb_data. In dlfb_realloc_framebuffer(), check mmap_count and return -EBUSY if the buffer is currently mapped, preventing buffer replacement while userspace holds stale PTEs. Tested with PoC using dummy_hcd + raw_gadget USB device emulation.
Title fbdev: udlfb: add vm_ops to dlfb_ops_mmap to prevent use-after-free
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-05-21T12:12:47.150Z

Reserved: 2026-05-01T14:12:56.013Z

Link: CVE-2026-43497

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-05-21T13:16:19.090

Modified: 2026-05-21T13:16:19.090

Link: CVE-2026-43497

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-21T14:00:12Z

Weaknesses