CVE-2026-43497

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

HIGH
7.3
CVSS Score
Published: May 21, 2026 at 12:12 PM UTC
Updated: August 5, 2026 at 01:24 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.3
Exploit prediction
EPSS 0.1%

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.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

4.19 ≤ v < 5.10.2584.19 ≤ v < 5.15.2094.19 ≤ v < 6.1.1754.19 ≤ v < 6.12.884.19 ≤ v < 6.18.304.19 ≤ v < 6.6.1404.19 ≤ v < 7.0.74.19 ≤ v < 7.15.11 ≤ v < 5.15.2095.16 ≤ v < 6.1.1756.13 ≤ v < 6.18.306.19 ≤ v < 7.0.76.2 ≤ v < 6.6.1406.7 ≤ v < 6.12.887.1 rc17.1 rc27433914efd584b22bb49d3e1eee001f5d0525ecd
Vendor states this is fixed in 18dd358de72d57993422cbb5dfb29ccd74efe192 (fixed)
Vendor states this is fixed in 4f312c30f0368e8d2a76aa650dff73f23490b5e7 (fixed)
Vendor states this is fixed in 5931f5651ee32bd41b3323256b31fcc8e71336ed (fixed)
Vendor states this is fixed in 60f711cfd580f86fea8284146ac133804e728f9a (fixed)
Vendor states this is fixed in 8de779dc40d35d39fa07387b6f921eb11df0f511 (fixed)
Vendor states this is fixed in a2c53a3822ee26e8d758071815b9ed3bf6669fc1 (fixed)
Vendor states this is fixed in da9b065cedfd3b574f229d5be594e6aa47a27ae6 (fixed)
Vendor states this is fixed in e3d9865dacd7435b8465848428210d0f0c673311 (fixed)
Vendor states this is fixed in 4.19 (unaffected)
Vendor states this is fixed in 5.10.258 (unaffected)
Vendor states this is fixed in 5.15.209 (unaffected)
Vendor states this is fixed in 6.1.175 (unaffected)
Vendor states this is fixed in 6.12.88 (unaffected)
Vendor states this is fixed in 6.18.30 (unaffected)
Vendor states this is fixed in 6.6.140 (unaffected)
Vendor states this is fixed in 7.0.7 (unaffected)
Vendor states this is fixed in 7.1 (unaffected)

CVSS

7.3HIGHLinux
Vector?

Quick Info

StatusANALYZED
CWE
CWE-416

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card