CVE-2026-46312
NoneCVSS
—
EPSS
0.1%
Published
Jun 8, 2026
CISA due date
—
Cloudanix analysis
A local user or application that can access certain Linux camera or graphics features may be able to crash or destabilize the system until the kernel is updated.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Denial of service
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
This is a local Linux kernel denial-of-service class flaw in the videobuf2 scatter-gather DMA mmap path. The vulnerable code fails to set expected VMA flags, specifically VM_DONTEXPAND and VM_DONTDUMP, when mapping buffers through vb2_dma_sg_mmap. When an imported dma-buf is later mapped through DRM GEM paths, the kernel can hit a WARN_ON condition in drm_gem_mmap_obj. On systems configured to panic on kernel warnings, this can turn a user-triggerable media/graphics operation into a kernel panic and system outage. On systems not configured to panic on warnings, the impact is generally limited to kernel warning traces, taint state, possible application failure, and operational instability in affected camera/media pipelines.
Why it matters to the business
The practical risk is localized service disruption on Linux systems that expose affected media, camera, or graphics device paths to local users or applications. Workstations, embedded devices, kiosks, media appliances, and developer systems using V4L2, dma-buf, DRM, or out-of-tree camera drivers may experience crashes or instability if the vulnerable path is triggered. Because EPSS is very low, the issue is not known to be broadly exploited, is not in CISA KEV, and has no reported ransomware association, remediation should be prioritized based on exposure of local users, device access controls, and whether panic_on_warn is enabled.
How an attack unfolds
An attacker needs local code execution or the ability to run an application that can access relevant media and graphics devices, such as V4L2 camera capture and DRM/dma-buf interfaces. The attacker opens an affected video capture device, causes the driver to allocate or import scatter-gather backed videobuf2 buffers, exports or imports those buffers as dma-bufs, and then mmap()s the imported buffer through a DRM GEM mapping path. Because the videobuf2 scatter-gather mmap implementation did not set the same protective VMA flags used by the contiguous DMA implementation, the DRM GEM code observes an unexpected mapping state and triggers a WARN_ON in drm_gem_mmap_obj. If the host is configured with kernel.panic_on_warn=1 or equivalent hardening/debug behavior, the warning escalates into a kernel panic, producing a local denial of service. Without panic-on-warn, the attacker may still generate repeated kernel warnings, taint the kernel, disrupt the affected media application, and create log noise.
How to fix it
Upgrade to a Linux kernel build that includes the upstream fix for vb2_dma_sg_mmap setting VM_DONTEXPAND and VM_DONTDUMP on the VMA. If consuming vendor kernels, apply the vendor-provided stable kernel update when available. If maintaining a custom kernel, backport the patch to the videobuf2 DMA scatter-gather mmap implementation so its VMA flag behavior matches vb2_dma_contig. As interim mitigation, restrict access to /dev/video*, /dev/media*, /dev/dri/*, and related device nodes to trusted users and service accounts only; remove untrusted users from video/render groups; disable or unload unnecessary camera/media drivers; and review whether panic_on_warn is required in production environments, because it can convert this warning into a full system crash.
How to confirm the fix worked
Confirm the running kernel package or source tree contains the patch that sets VM_DONTEXPAND and VM_DONTDUMP in vb2_dma_sg_mmap. On patched systems, exercise representative camera/media pipelines that import dma-bufs into DRM/GEM mappings and verify that no WARN_ON is emitted from drm_gem_mmap_obj. Check dmesg or journalctl -k after testing for the absence of the vulnerable stack trace. Validate device-node permissions so only intended users can access video, media, and DRM render devices. If panic_on_warn is enabled, confirm the business requirement for that setting and ensure affected systems are patched before allowing untrusted local media workloads.
Typical attack path
- Obtain local execution on a Linux system or access to an application context allowed to use video/media and graphics device nodes.
- Open an affected V4L2/media device that uses videobuf2 scatter-gather DMA memory operations.
- Create, import, or pass dma-buf backed buffers between the media capture path and DRM/GEM mapping path.
- Call mmap() on the imported dma-buf/GEM object in a way that reaches drm_gem_mmap_obj.
- Trigger the kernel WARN_ON caused by missing VM_DONTEXPAND/VM_DONTDUMP VMA flags.
- If panic_on_warn is enabled, crash the kernel; otherwise cause warning traces, kernel taint, and possible application instability.
How to detect it
Look for evidence in kernel logs rather than network telemetry, because exploitation is local and triggered through device and mmap operations. Review dmesg, journalctl -k, /var/log/kern.log, /var/log/messages, and crash/panic logs for WARN_ON traces at drivers/gpu/drm/drm_gem.c in drm_gem_mmap_obj, especially when accompanied by media, V4L2, videobuf2_dma_sg, dma-buf, camera, or DRM modules. Correlate warnings with process names that accessed camera or graphics devices shortly before the event, such as media frameworks, browsers, sandboxed workloads, camera applications, or test tools. On systems with auditd or eBPF telemetry, review accesses to /dev/video*, /dev/media*, /dev/dri/renderD*, and mmap activity by untrusted users around the time of kernel warnings or reboots. If the system rebooted unexpectedly, inspect pstore, kdump, vmcore, systemd journal boot boundaries, and panic records to determine whether a WARN_ON escalated to a panic. There are no known public exploit tools or threat actors associated with this issue in the provided data.
- WARN_ON(!(vma->vm_flags & VM_DONTEXPAND))
- drm_gem_mmap_obj
- drivers/gpu/drm/drm_gem.c
- vb2_dma_sg_mmap
- vb2_dma_sg_memops
- videobuf2_dma_sg
- videobuf2_memops
- dma-buf
- __mmap_region
- mmap_region
- do_mmap
- vm_mmap_pgoff
- ksys_mmap_pgoff
- /dev/video
- /dev/media
- /dev/dri/renderD
- gst-launch-1.0 v4l2src
- v4l2src ! gtk4paintablesink
- Tainted: G W
- kernel.panic_on_warn
What your security team should do
- Inventory Linux systems that expose V4L2/media devices, camera drivers, DRM render nodes, or dma-buf based media pipelines to local users or containerized workloads.
- Prioritize patching systems where untrusted users can access /dev/video*, /dev/media*, or /dev/dri/*, and systems configured with panic_on_warn enabled.
- Apply vendor kernel updates or backport the upstream videobuf2_dma_sg mmap VMA flag fix to custom kernels.
- Tighten permissions on video, media, and DRM device nodes; limit membership in video, render, and similar hardware-access groups.
- Search kernel logs for prior WARN_ON traces involving drm_gem_mmap_obj, videobuf2_dma_sg, vb2_dma_sg_memops, or dma-buf import/mmap activity.
- For high-availability production systems, review kernel warning panic policy and avoid exposing affected device paths to untrusted workloads until patched.
The record
In the Linux kernel, the following vulnerability has been resolved: media: videobuf2: Set vma_flags in vb2_dma_sg_mmap vb2_dma_contig sets VMA flags VM_DONTEXPAND and VM_DONTDUMP and I do not see a reason why vb2_dma_sg should behave differently. This avoids hitting `WARN_ON(!(vma->vm_flags & VM_DONTEXPAND));` in drm_gem_mmap_obj() during mmap() of an imported dma-buf from the out of tree Apple ISP camera capture driver which uses vb2_dma_sg_memops. gst-launch-1.0 v4l2src ! gtk4paintablesink [ 38.201528] ------------[ cut here ]------------ [ 38.202135] WARNING: CPU: 7 PID: 2362 at drivers/gpu/drm/drm_gem.c:1144 drm_gem_mmap_obj+0x1f8/0x210 [ 38.203278] Modules linked in: rfcomm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device uinput nf_conntrack_netbios_ns nf_conntrack_broadcast nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nf_tables qrtr bnep nls_ascii i2c_dev loop fuse dm_multipath nfnetlink brcmfmac_wcc hid_magicmouse hci_bcm4377 brcmfmac brcmutil bluetooth ecdh_generic cfg80211 ecc btrfs xor xor_neon rfkill hid_apple raid6_pq joydev aop_als apple_nvmem_spmi industrialio snd_soc_aop apple_z2 snd_soc_cs42l84 tps6598x snd_soc_tas2764 macsmc_reboot spi_nor macsmc_hwmon rtc_macsmc gpio_macsmc macsmc_power regmap_spmi macsmc_input dockchannel_hid panel_summit appledrm nvme_apple dwc3 snd_soc_macaudio drm_client_lib nvme_core phy_apple_atc hwmon apple_sart apple_dockchannel macsmc apple_rtkit_helper spmi_apple_controller aop apple_wdt mfd_core nvmem_apple_efuses pinctrl_apple_gpio apple_isp apple_dcp videobuf2_dma_sg mux_core spi_apple [ 38.203300] videobuf2_memops i2c_pasemi_platform snd_soc_apple_mca videobuf2_v4l2 videodev clk_apple_nco videobuf2_common snd_pcm_dmaengine adpdrm asahi apple_admac adpdrm_mipi drm_dma_helper pwm_apple i2c_pasemi_core drm_display_helper mc cec apple_dart ofpart apple_soc_cpufreq leds_pwm phram [ 38.217677] CPU: 7 UID: 1000 PID: 2362 Comm: gst-launch-1.0 Tainted: G W 6.17.6+ #asahi-dev PREEMPT(full) [ 38.219040] Tainted: [W]=WARN [ 38.219398] Hardware name: Apple MacBook Pro (13-inch, M2, 2022) (DT) [ 38.220213] pstate: 21400005 (nzCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) [ 38.221088] pc : drm_gem_mmap_obj+0x1f8/0x210 [ 38.221643] lr : drm_gem_mmap_obj+0x78/0x210 [ 38.222178] sp : ffffc0008dc678e0 [ 38.222579] x29: ffffc0008dc678e0 x28: 0000000000042a97 x27: ffff8000b701b480 [ 38.223465] x26: 00000000000000fb x25: ffffc0008dc67d20 x24: ffffc0008dc67968 [ 38.224402] x23: ffff8000e3ca5600 x22: ffff8000265b7800 x21: ffff80003000c0c0 [ 38.225279] x20: 0000000000000000 x19: ffff8000b68c5200 x18: ffffc0008dc67968 [ 38.226151] x17: 0000000000000000 x16: 0000000000000000 x15: ffffc000810a30a8 [ 38.227042] x14: 00007fff637effff x13: 00005555de91ffff x12: 00007fff63293fff [ 38.227942] x11: 0000000000000000 x10: ffff8000184ecf08 x9 : ffffc0007a1900c8 [ 38.228824] x8 : ffffc0008dc67968 x7 : 0000000000000012 x6 : ffffc0015cf1c000 [ 38.229703] x5 : ffffc0008dc676a0 x4 : ffffc00081a27dc0 x3 : 0000000000000038 [ 38.230607] x2 : 0000000000000003 x1 : 0000000000000003 x0 : 00000000100000fb [ 38.231488] Call trace: [ 38.231806] drm_gem_mmap_obj+0x1f8/0x210 (P) [ 38.232342] drm_gem_mmap+0x140/0x260 [ 38.232813] __mmap_region+0x488/0x9a0 [ 38.233277] mmap_region+0xd0/0x148 [ 38.233703] do_mmap+0x350/0x5c0 [ 38.234148] vm_mmap_pgoff+0x14c/0x200 [ 38.234612] ksys_mmap_pgoff+0x150/0x208 [ 38.235107] __arm64_sys_mmap+0x34/0x50 [ 38.235611] invoke_syscall+0x50/0x120 [ 38.236075] el0_svc_common.constprop.0+0x48/0xf0 [ 38.236680] do_el0_svc+0x24/0x38 [ 38.237113] el0_svc+0x38/0x168 [ 38.237507] el0t_64_sync_handler+0xa0/0xe8 [ 38.238034] el0t_64_sync+0x198/0x1a0 [ 38.238491] ---[ end trace 0000000000000000 ]--- There were discussions in [1] at the end of 2023 that mmap() on imported ---truncated---
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| openSUSE:Tumbleweed | kernel-source | 0 | 7.0.12-1.1 |
Related vulnerabilities
- CVE-2026-53354 In the Linux kernel, the following vulnerability has been resolved: arm64: errata… Also affects kernel-source
- CVE-2026-53325 In the Linux kernel, the following vulnerability has been resolved: agp/amd64: Fix broken… Also affects kernel-source
- CVE-2026-52946 In the Linux kernel, the following vulnerability has been resolved: fs/fcntl: fix… Also affects kernel-source
- CVE-2026-52907 In the Linux kernel, the following vulnerability has been resolved: media: rockchip… Also affects kernel-source
- CVE-2026-52906 In the Linux kernel, the following vulnerability has been resolved: 9p: fix access mode… Also affects kernel-source
- CVE-2026-52905 In the Linux kernel, the following vulnerability has been resolved: mm/damon/core… Also affects kernel-source
- CVE-2026-52904 In the Linux kernel, the following vulnerability has been resolved: drm/nouveau: fix… Also affects kernel-source
- CVE-2026-46332 In the Linux kernel, the following vulnerability has been resolved: greybus… Also affects kernel-source