CVE-2026-43497
CVE.org · Published
- Record status
- Published
- Identifier year (not publication year)
- 2026
- Source publication
- Source updated
- Imported by cveboard
- Source snapshot
- cve_2026-10-24_midnight_baseline ·
CNA source text (English)
fbdev: udlfb: add vm_ops to dlfb_ops_mmap to prevent use-after-free
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.
Scoped product and version facts
Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.
Exploitation unknown; this catalogue does not assess exploitation.
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
unaffected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 7433914efd584b22bb49d3e1eee001f5d0525ecd | affected | git | 60f711cfd580f86fea8284146ac133804e728f9a | Unavailable | None listed |
| 7433914efd584b22bb49d3e1eee001f5d0525ecd | affected | git | 5931f5651ee32bd41b3323256b31fcc8e71336ed | Unavailable | None listed |
| 7433914efd584b22bb49d3e1eee001f5d0525ecd | affected | git | e3d9865dacd7435b8465848428210d0f0c673311 | Unavailable | None listed |
| 7433914efd584b22bb49d3e1eee001f5d0525ecd | affected | git | 4f312c30f0368e8d2a76aa650dff73f23490b5e7 | Unavailable | None listed |
| 7433914efd584b22bb49d3e1eee001f5d0525ecd | affected | git | 18dd358de72d57993422cbb5dfb29ccd74efe192 | Unavailable | None listed |
| 7433914efd584b22bb49d3e1eee001f5d0525ecd | affected | git | da9b065cedfd3b574f229d5be594e6aa47a27ae6 | Unavailable | None listed |
| 7433914efd584b22bb49d3e1eee001f5d0525ecd | affected | git | a2c53a3822ee26e8d758071815b9ed3bf6669fc1 | Unavailable | None listed |
| 7433914efd584b22bb49d3e1eee001f5d0525ecd | affected | git | 8de779dc40d35d39fa07387b6f921eb11df0f511 | Unavailable | None listed |
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
affected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 4.19 | affected | Unavailable | Unavailable | Unavailable | None listed |
| 0 | unaffected | semver | 4.19 | Unavailable | None listed |
| 5.10.258 | unaffected | semver | Unavailable | 5.10.* | None listed |
| 5.15.209 | unaffected | semver | Unavailable | 5.15.* | None listed |
| 6.1.175 | unaffected | semver | Unavailable | 6.1.* | None listed |
| 6.6.140 | unaffected | semver | Unavailable | 6.6.* | None listed |
| 6.12.88 | unaffected | semver | Unavailable | 6.12.* | None listed |
| 6.18.30 | unaffected | semver | Unavailable | 6.18.* | None listed |
| 7.0.7 | unaffected | semver | Unavailable | 7.0.* | None listed |
| 7.1 | unaffected | original_commit_for_fix | Unavailable | * | None listed |