Skip to main content

Linux Kernel EUVDEUVD-2026-103755

| CVE-2026-98515 HIGH
2026-10-18 Linux GHSA-82rj-6xvq-73v7
7.8
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain local access to nouveau DRM device
  2. Delivery
    Open device triggering cli_init failure path
  3. Exploit
    Force double nvif_vmm_dtor on vmm->page
  4. Execution
    Corrupt kernel slab allocator state
  5. Impact
    Escalate privileges or crash kernel

Vulnerability Assessment

Exploitation Conditions

Exploitation requires the nouveau kernel driver to be loaded (a Linux host with Nvidia GPU using the open-source nouveau driver) and local access to the DRM device node (/dev/dri/*), typically gated by membership in the video group or equivalent. The specific trigger is reaching the cleanup path twice: nouveau_cli_init() must fail so that nouveau_cli_fini() is invoked once internally and then again by nouveau_drm_open()'s own error handling, double-freeing vmm->page because it is never cleared after the first kfree(). Limiting factors: the vector is local (not remote/network), low-privilege but not zero-privilege (device access needed), no user interaction of a victim is required, and hosts without the nouveau driver loaded (servers, cloud VMs, systems using the proprietary Nvidia driver) are not exposed.

Impact

This is a genuine but comparatively low-urgency memory-corruption flaw. The CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, base 7.8) correctly reflects a local, low-privilege double-free with high confidentiality, integrity and availability impact - consistent with kernel heap corruption that can escalate to code execution or crash. All signals point the same way: EPSS is 0.21% (11th percentile), there is no CISA KEV listing, and no public exploit reference is present, so this is not evidence of widespread opportunistic exploitation. The vuln.today decision label is 'this_week' (patch promptly, not an emergency), which aligns with a local-only, authentication-requiring bug rather than a remotely-exploitable one. The practical risk is bounded by the local attack vector: an attacker already needs local code execution and access to the nouveau DRM device to reach the vulnerable path. Note one input inconsistency: the Tags list this as 'Information Disclosure', but the described defect is a double-free (memory corruption / potential use-after-free), which the CVSS C:H/I:H/A:H full-impact profile also reflects - treat the 'Information Disclosure' label as suspect. The flaw was discovered by Syzkaller fuzzing, which is a discovery method, not evidence of in-the-wild use.

Exploit ScenarioDerived

A local unprivileged user with access to the nouveau DRM device node opens /dev/dri/* and drives nouveau_drm_open() down the error path where nouveau_cli_init() fails, causing nouveau_cli_fini() - and thus nvif_vmm_dtor() - to run twice on the same vmm->page allocation. The resulting double-free corrupts kernel slab state, which a skilled attacker could shape toward local privilege escalation or, at minimum, a denial-of-service kernel crash. No public exploit is identified; the issue was reproduced via a modified Syzkaller, and the local low-complexity vector makes reliable triggering plausible.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 24, 2026

Double-free in the Linux kernel's nouveau open-source DRM driver lets a local user who can open the DRM device node corrupt kernel heap memory by forcing the driver's client-teardown path to run twice during a failed open. Only hosts that actually have the nouveau module loaded are exposed - typically desktops, workstations or VMs with an NVIDIA GPU bound to nouveau rather than the proprietary driver - and the CVSS 3.1 score of 7.8 (AV:L/AC:L/PR:L/UI:N, high confidentiality, integrity and availability impact) reflects a local, low-privilege attacker with device access, not a remote one. The flaw has been fixed upstream in the stable trees, no public exploit code has been identified at time of analysis, and EPSS is low at 0.21% (11th percentile), which is consistent with a priority of patching this week rather than an emergency response.

RemediationAI

Apply the vendor-released kernel updates: 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, 6.18.55, 7.2.9 or 7.3-rc5, or take the corresponding stable commit from git.kernel.org (for example https://git.kernel.org/stable/c/bf542ecd4f60d4689818d194e7ca74772fe0f8b5 for one of the affected branches) and rebuild; distributions carrying these trees should ship the backport through their normal kernel advisory channel. Because the bug is only reachable through nouveau's error path and requires the driver to be loaded plus local access to /dev/dri/*, hosts that do not need the open-source NVIDIA driver can blacklist or unload nouveau (modprobe.blacklist=nouveau), which removes the attack surface entirely at the cost of losing GPU acceleration on that device. Tightening ownership and permissions on /dev/dri render and card nodes so that only trusted, already-privileged groups can open them reduces exposure for multi-user systems, though it does not fix the double-free and does not protect privileged users, who can reach the node regardless. Systems using NVIDIA's proprietary driver are not affected by this code path.

Affected VersionsENISA

Linux 20d8a88e557aae5264e793f4626c45cd644c7144 <872a5473c02a26c955be44d52b7ab2f8ea70a2cf
Linux 4.11
Linux patch: 6.18.55
Linux patch: 6.1.189
Linux 20d8a88e557aae5264e793f4626c45cd644c7144 <023e7a01f8fb27799f0987b5bcda325d73a2904c
Linux patch: 7.3-rc5
Linux 20d8a88e557aae5264e793f4626c45cd644c7144 <f09f4a536935b15539f2de9fe775a2641202be90
Linux patch: 6.6.158
Linux patch: 0
Linux patch: 7.2.9
Linux 20d8a88e557aae5264e793f4626c45cd644c7144 <97077ac87afe9e91ec074ef0be64454e7ccbf344
Linux 20d8a88e557aae5264e793f4626c45cd644c7144 <375901ac0f286e81be00a4126e57d488cb401884
Linux patch: 5.15.222
Linux patch: 6.12.112
Linux 20d8a88e557aae5264e793f4626c45cd644c7144 <bf542ecd4f60d4689818d194e7ca74772fe0f8b5
Linux 20d8a88e557aae5264e793f4626c45cd644c7144 <279e5ac137370e274a09dd552547ae6bddd0d4d5
Linux patch: 5.10.271
Linux 20d8a88e557aae5264e793f4626c45cd644c7144 <109a8d2d5b7d2719ebe09df3f9241023900b3846

Affected Packages

euvd linux no fix

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

nouveau is the in-tree, reverse-engineered DRM/KMS driver for NVIDIA GPUs, and its user-space-facing objects are managed through the nvif layer. During nouveau_cli_init(), the driver allocates a page for the VMM via nvif_vmm_ctor() and stores it in vmm->page. nvif_vmm_dtor() frees that page with kfree() unconditionally but never clears vmm->page afterwards, so the structure is left holding a dangling pointer. The bug is in the error-handling flow rather than in normal operation: when nouveau_cli_init() fails, it calls nouveau_cli_fini(), which calls nouveau_vmm_fini() and then nvif_vmm_dtor(); nouveau_drm_open() then enters its own cleanup path and calls nouveau_cli_fini() a second time, freeing the same vmm->page again. The defect is therefore a classic double-free (the double-free/CWE-415 class; the CVE feed itself carries no CWE assignment), triggered specifically on the driver-open error path rather than through a crafted ioctl. It was discovered by fuzzing nouveau with a modified Syzkaller, and the KASAN report shows kfree() on an already-freed address in nvif_vmm_dtor at drivers/gpu/drm/nouveau/nvif/vmm.c with the allocation originating in nvif_vmm_ctor(). CPE data maps the issue to the linux:linux product family; the practical attack surface is the local /dev/dri/* character device, reachable only when the nouveau module is bound to hardware.

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

Vendor (Linux) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.8 HIGH

Local DRM device access required so AV:L and PR:L; the failure path is reachable without special timing per the report, so AC:L; kernel heap corruption yields full C/I/A impact.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
CVSS changed
Oct 24, 2026 - 14:22 NVD
7.8 (HIGH)
Patch available
Oct 18, 2026 - 16:02 EUVD
CVE Published
Oct 18, 2026 - 15:17 cve.org
HIGH 7.8
CVE Published
Oct 18, 2026 - 15:17 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

drm/nouveau: fix double-free in nvif_vmm_dtor

On failure, nouveau_cli_init() calls nouveau_cli_fini() to tear the client down. Then, nouveau_drm_open() also enters into its cleanup path and calls nouveau_cli_fini() AGAIN. nouveau_cli_fini() calls nouveau_vmm_fini():

void nouveau_vmm_fini(struct nouveau_vmm *vmm) { nouveau_svmm_fini(&vmm->svmm); nvif_vmm_dtor(&vmm->vmm); vmm->cli = NULL; }

Inside nvif_vmm_dtor(), vmm->page is freed unconditionally:

void nvif_vmm_dtor(struct nvif_vmm *vmm) { kfree(vmm->page); nvif_object_dtor(&vmm->object); }

vmm->page is never cleared after being freed, so the second call of nvif_vmm_dtor() will cause a double-free.

Found by fuzzing the nouveau driver with a modified Syzkaller:

BUG: KASAN: double-free in nvif_vmm_dtor+0x31/0x50 drivers/gpu/drm/nouveau/nvif/vmm.c:194 Free of addr ffff888010fcdc30 by task syz.0.173/2567

CPU: 1 UID: 0 PID: 2567 Comm: syz.0.173 Not tainted 7.2.0 #24 PREEMPT(lazy) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 Call Trace: <TASK> __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x95/0xe0 lib/dump_stack.c:120 print_address_description mm/kasan/report.c:378 [inline] print_report+0xcb/0x5a0 mm/kasan/report.c:482 kasan_report_invalid_free+0xaa/0xd0 mm/kasan/report.c:557 check_slab_allocation+0xe4/0x110 mm/kasan/common.c:235 kasan_slab_pre_free include/linux/kasan.h:199 [inline] slab_free_hook mm/slub.c:2622 [inline] slab_free mm/slub.c:6377 [inline] kfree+0x192/0x590 mm/slub.c:6692 nvif_vmm_dtor+0x31/0x50 drivers/gpu/drm/nouveau/nvif/vmm.c:194 nouveau_vmm_fini+0x16/0x50 drivers/gpu/drm/nouveau/nouveau_vmm.c:127 nouveau_cli_fini+0x10e/0x210 drivers/gpu/drm/nouveau/nouveau_drm.c:225 nouveau_drm_open+0x24e/0x740 drivers/gpu/drm/nouveau/nouveau_drm.c:1255 drm_file_alloc+0x5f2/0xad0 drivers/gpu/drm/drm_file.c:176 drm_open_helper+0x1d7/0x4a0 drivers/gpu/drm/drm_file.c:335 drm_open+0x190/0x3d0 drivers/gpu/drm/drm_file.c:388 drm_stub_open+0x1f2/0x460 drivers/gpu/drm/drm_drv.c:1211 chrdev_open+0x21c/0x660 fs/char_dev.c:411 do_dentry_open+0x59d/0x12b0 fs/open.c:947 vfs_open+0x82/0x390 fs/open.c:1052 do_open fs/namei.c:4700 [inline] path_openat+0x2345/0x3420 fs/namei.c:4863 do_file_open+0x207/0x460 fs/namei.c:4892 do_sys_openat2+0xd1/0x1d0 fs/open.c:1368 do_sys_open fs/open.c:1374 [inline] __do_sys_openat fs/open.c:1390 [inline] __se_sys_openat fs/open.c:1385 [inline] __x64_sys_openat+0x144/0x200 fs/open.c:1385 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0x115/0x690 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fc6d687594d Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fc6d5295008 EFLAGS: 00000246 ORIG_RAX: 0000000000000101 RAX: ffffffffffffffda RBX: 00007fc6d6b06180 RCX: 00007fc6d687594d RDX: 0000000000022501 RSI: 0000200000000000 RDI: ffffffffffffff9c RBP: 00007fc6d691c303 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fc6d6b06218 R14: 00007fc6d6b06180 R15: 00007ffd9451d760 </TASK>

Allocated by task 2567 on cpu 1 at 163.593900s: kasan_save_stack+0x24/0x50 mm/kasan/common.c:57 kasan_save_track+0x17/0x60 mm/kasan/common.c:78 poison_kmalloc_redzone mm/kasan/common.c:398 [inline] __kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:415 kasan_kmalloc include/linux/kasan.h:263 [inline] __do_kmalloc_node mm/slub.c:5334 [inline] __kmalloc_noprof+0x304/0x7c0 mm/slub.c:5359 _kmalloc_noprof include/linux/slab.h:992 [inline] nvif_vmm_ctor+0x3c0/0x7e0 drivers/gpu/drm/nouveau/nvif/vmm.c:237 nouveau_vmm_init+0x40/0x90 drivers/gpu/drm/nouveau/nouveau_vmm.c:134 nouveau_cli_init+0x7b9/0 ---truncated---

Executive ViewAI

Why It Matters

A high-severity double-free vulnerability in the Linux kernel's nouveau open-source graphics driver could allow a local attacker to corrupt kernel memory, leading to potential privilege escalation or system instability on affected systems. This impacts only workstations, desktops, or virtual machines using NVIDIA GPUs with the nouveau driver, not servers with proprietary drivers. Leadership should prioritize patching within the week to mitigate risk.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Medium
nouveau GPU driver; only on Linux hosts with Nvidia hardware, not servers
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
Medium

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy