Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessBind PCI device with BAR0 < 4 MB to driver
-
DeliveryDriver maps VRAM smaller than CIRRUS_VRAM_SIZE
-
ExploitCreate framebuffer larger than mapped memory
-
Executiondrm_fb_memcpy writes past mapped I/O memory
-
ImpactSupervisor page fault crashes kernel
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a PCI device whose BAR0 resource is smaller than CIRRUS_VRAM_SIZE (4 MB) to be bound to the cirrus-qemu driver; the standard QEMU Cirrus device provides a 4 MB BAR0, so default configurations are NOT affected. Binding an arbitrary/undersized PCI device to a kernel driver is a privileged operation (effectively host/hypervisor control over the emulated hardware or root-level device binding inside the guest). The fault is then reached only when a display-plane atomic update copies an oversized framebuffer into the undersized mapping. Limiting factors: local access only (AV:L), a non-default/malformed device is required, elevated privilege to perform the bind, and the outcome is a crash (DoS) with no confidentiality or integrity impact. |
| Impact | This is a moderate-severity, availability-only defect (CVSS:3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, base 5.5) in the Linux kernel's drm/cirrus-qemu tiny DRM driver, classified CWE-787 (out-of-bounds write). The impact is a kernel page fault / crash (denial of service) with no stated confidentiality or integrity impact - consistent with C:N/I:N/A:H. All exploitation signals point AWAY from urgency: EPSS is 0.16% (4th percentile), the vulnerability is NOT in CISA KEV, and no public exploit or PoC is present - the listed references are all kernel.org stable patch commits and advisory pages (git.kernel.org, NVD, VulDB, EUVD), not exploit code. The vuln.today decision label is 'this_month' (not act_now/emergency), which aligns with the low EPSS and absence of active exploitation. One signal to weigh carefully: the supplied CVSS uses AC:L/PR:L, but the description's trigger - a PCI device whose BAR0 is smaller than the 4 MB CIRRUS_VRAM_SIZE being bound to the driver - is a non-default, operator/privilege-dependent condition rather than something a low-privileged user triggers against a stock system; see the independent assessment below. Net: a real but low-priority bug to fold into the normal kernel patch cycle, not an emergency. |
| Exploit ScenarioDerived | In a virtualized setup, a PCI device exposing a BAR0 smaller than 4 MB is bound to the cirrus-qemu driver, which maps the undersized region as VRAM but still validates framebuffers against the hard-coded 4 MB CIRRUS_VRAM_SIZE. A framebuffer larger than the mapped memory is then created and, on a display-plane update (e.g. during release), cirrus_primary_plane_helper_atomic_update() calls drm_fb_memcpy()/memcpy_toio() and writes past the end of the mapped I/O memory, producing a supervisor-write page fault that crashes the kernel. No public exploit code is identified at time of analysis; the trigger requires the specific undersized-BAR0 device condition described in the report. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Out-of-bounds writes in the Linux kernel cirrus-qemu DRM driver can crash the system when a PCI device whose BAR0 is smaller than the expected 4 MB VRAM is bound to the driver and a display-plane atomic update copies an oversized framebuffer into the undersized mapping. The issue is availability-only and requires a privileged local actor able to bind a non-default or malformed undersized PCI device to cirrus-qemu; the standard QEMU Cirrus device exposes a 4 MB BAR0 and is not affected in default configurations. No public exploit was identified at time of analysis, EPSS is low at 0.16% (4th percentile), and the supplied data does not indicate CISA KEV listing.
RemediationAI
Vendor-released patch: Linux 6.12.111, 6.18.53, 7.2.7, and 7.3-rc2, corresponding to the stable commits 0b5084a1f070ad1fc34e11945644ae034bbc774c, 26bd90c886218f36c9adeab206b0e27b4384e2f6, 144f51cd0ccc3ad47a6099917b7bb535611fb18f, 92312d333bf700798f92f30406c721bce87506f3, and 2a0e7bcff3fa63e7309d2b39e18af59eb8ef2b6e. Upgrade to a kernel containing the fix, which validates in cirrus_pci_probe() that BAR0 is not smaller than CIRRUS_VRAM_SIZE and returns -ENODEV when it is undersized; advisory references include the kernel.org stable commit URLs, https://nvd.nist.gov/vuln/detail/CVE-2026-98142, and https://vuldb.com/vuln/409979. Until updated, avoid binding PCI devices whose BAR0 is smaller than 4 MB to cirrus-qemu and use the standard QEMU Cirrus device with a 4 MB BAR0; this prevents the undersized mapping but restricts nonstandard or malformed device configurations.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The cirrus-qemu driver is a tiny DRM driver for QEMU's emulated Cirrus VGA adapter and relies on CIRRUS_VRAM_SIZE (4 MB) as the assumed VRAM size. During cirrus_pci_probe(), the driver maps BAR0 without verifying that the PCI resource length is at least CIRRUS_VRAM_SIZE; if an undersized BAR0 device is bound, the mapped VRAM is smaller than the validation logic assumes, allowing framebuffers larger than the mapping to be created. The out-of-bounds write is CWE-787: when the display plane is updated, cirrus_primary_plane_helper_atomic_update() calls drm_fb_memcpy(), which reaches iosys_map_memcpy_to()/memcpy_toio() and writes past the end of the mapped I/O memory, producing a supervisor write page fault and crash. The trigger requires a non-default or malformed PCI device with BAR0 below 4 MB and privileged device-binding capability, consistent with the assessed AV:L/AC:H/PR:H prerequisites; the outcome is denial of service with no confidentiality or integrity impact, and the standard 4 MB QEMU Cirrus BAR0 does not satisfy the trigger.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Triggering needs a non-default undersized-BAR0 device (AC:H) and privileged ability to bind it to the driver (PR:H); impact is a local kernel crash only, so C:N/I:N/A:H.
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
4DescriptionNVD
In the Linux kernel, the following vulnerability has been resolved:
drm/cirrus-qemu: Validate BAR0 size during probe
The cirrus-qemu driver relies on CIRRUS_VRAM_SIZE (4 MB) to validate framebuffer sizes. However, during PCI probe, the driver mapped BAR0 without verifying that its size matches CIRRUS_VRAM_SIZE.
If a PCI device with a BAR0 smaller than 4 MB is bound to the driver, the mapped VRAM will be smaller than expected. Because validation checks assume 4 MB VRAM, framebuffers larger than the mapped memory can be created.
When the display plane is updated (e.g. during release), cirrus_primary_plane_helper_atomic_update() copies the framebuffer to VRAM using drm_fb_memcpy(). Writing past the end of the mapped I/O memory causes a supervisor write page fault:
BUG: unable to handle page fault for address: ffffc9000389c000 ... RIP: 0010:memcpy_toio+0x7c/0xe0 arch/x86/lib/iomem.c:110 ... Call Trace: <TASK> iosys_map_memcpy_to include/linux/iosys-map.h:285 [inline] drm_fb_memcpy+0x325/0x5d0 drivers/gpu/drm/drm_format_helper.c:442 cirrus_primary_plane_helper_atomic_update+0x98a/0xb00 drivers/gpu/drm/tiny/cirrus-qemu.c:358 drm_atomic_helper_commit_planes+0x626/0xea0 drivers/gpu/drm/drm_atomic_helper.c:3038 drm_atomic_helper_commit_tail+0x60/0x510 drivers/gpu/drm/drm_atomic_helper.c:1989 commit_tail+0x2b1/0x3c0 drivers/gpu/drm/drm_atomic_helper.c:2074 drm_atomic_helper_commit+0xa77/0xb10 drivers/gpu/drm/drm_atomic_helper.c:2312
Fix this by validating in cirrus_pci_probe() that the PCI BAR0 resource is not less than CIRRUS_VRAM_SIZE, returning -ENODEV if it is less.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
EUVD-2026-86973
GHSA-4mx2-2wh8-249p
NVD
CVE.org
EPSS
VulDB
Exploit-DB