CVE-2026-98840 json
vc_screen: reload vc pointer before if (ret) in vcs_write() to avoid UAF
published 2026-10-18 21 d ago modified 2026-10-30 9 d ago also EUVD-2026-103780
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 7%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
vc_screen: reload vc pointer before if (ret) in vcs_write() to avoid UAF
The reload of 'vc' added by commit 8fb9ea65c9d1 ("vc_screen: reload load of struct vc_data pointer in vcs_write() to avoid UAF") sits after the 'if (ret)' block, so the copy-failure break path exits the loop without reloading vc. If the vc was kfree()'d via vc_port_destruct during the unlocked copy_from_user() window, the post-loop 'if (written && vc) vcs_scr_updated(vc)' is reached with a stale non-NULL vc. The '&& vc' guard from commit a287620312dc ("vc_screen: fix null-ptr-deref in vcs_notifier() during concurrent vcs_write") only handles the NULL case, not this stale-non-NULL case; vcs_notifier() then reads param->vc->vc_num from freed memory:
BUG: KASAN: slab-use-after-free in vcs_notifier+0x7c/0xd0 Read of size 2 at addr ffff888007149190 Call Trace: vcs_notifier+0x7c/0xd0 atomic_notifier_call_chain+0x70/0xa0 vcs_scr_updated+0x77/0xa0 vcs_write+0x71b/0x7e0 Allocated by task: vc_allocate -> con_install -> tty_open Freed by task: kfree <- vt_ioctl (VT_DISALLOCATE -> vc_port_destruct)
Move the reload to immediately after console_lock(), before 'if (ret)', so every break path below passes a fresh vc to the post-loop vcs_scr_updated().
Patch / fix
- Linux Linux 5.10.273, 5.15.224, 6.1.191, 6.6.160, 6.12.113, 6.18.56, 7.1, 7.2, 7.2.10, 7.3
- linux Debian 13 6.12.113-1
- linux Debian 14 7.2.10-1
- linux-6.12 Debian 12 6.12.113-1~deb12u1
debian advisories DEBIAN-CVE-2026-98840
- kernel-64kb SLE Module for Basesystem 15 SP7 6.4.0-150700.53.90.1
- kernel-syms SLE Module for Development Tools 15 SP7 6.4.0-150700.53.90.1
- kernel-azure SLE Module for Public Cloud 15 SP7 6.4.0-150700.53.90.1
- kernel-source SLE Module for Development Tools 15 SP7, SLE Module for Basesystem 15 SP7 6.4.0-150700.53.90.1
- kernel-default SLE Workstation Extension 15 SP7, SLE Module for Legacy 15 SP7, SLE Module for Basesystem 15 SP7 +2 more 6.4.0-150700.53.90.1
- kernel-zfcpdump SLE Module for Basesystem 15 SP7 6.4.0-150700.53.90.1
- kernel-obs-build SLE Module for Development Tools 15 SP7 6.4.0-150700.53.90.1
- kernel-default-base SLE Module for Basesystem 15 SP7 6.4.0-150700.53.90.1.150700.17.51.1
suse advisories SUSE-SU-2026:5121-1SUSE-SU-2026:5091-1
- git.kernel.org/stable/c/cbc05413d3694193494b2374b56bae801ac41fec commit
- git.kernel.org/stable/c/942742000a0288d4ca60c448894aabacd48004d5 commit
- git.kernel.org/stable/c/c9f56d4b29792a62b17f2051ba93fd3b40a479ec commit
- git.kernel.org/stable/c/c073d01f6f5367c3a4f07efd507274ed0d03acd0 commit
- git.kernel.org/stable/c/1485a3dd97ab1af2605243cabe6b604546d46dd1 commit
- git.kernel.org/stable/c/233a2e190b12884d186027d0b86d43a48799b69c commit
- git.kernel.org/stable/c/9dfcadc5e003fb250dd471db90144bd5366140e9 commit
- git.kernel.org/stable/c/226bd5603371cd9f6642cbb9e9a677f445de3530 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-98840 updated cvss 4.7
kernel: kernel: Denial of Service via use-after-free in virtual console screen driver
-
Red Hat Enterprise Linux 10 kernelaffected: workaround, no fix available “Fix deferred”
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-08).
Affected products
- Linux Linux
Classification
- Technology feeds
References
- git.kernel.org /stable/c/cbc05413d3694193494b2374b56bae801ac41fec
- git.kernel.org /stable/c/942742000a0288d4ca60c448894aabacd48004d5
- git.kernel.org /stable/c/c9f56d4b29792a62b17f2051ba93fd3b40a479ec
- git.kernel.org /stable/c/c073d01f6f5367c3a4f07efd507274ed0d03acd0
- git.kernel.org /stable/c/1485a3dd97ab1af2605243cabe6b604546d46dd1
- git.kernel.org /stable/c/233a2e190b12884d186027d0b86d43a48799b69c
- git.kernel.org /stable/c/9dfcadc5e003fb250dd471db90144bd5366140e9
- git.kernel.org /stable/c/226bd5603371cd9f6642cbb9e9a677f445de3530
Sources
- CVE List CVE-2026-98840
- NVD CVE-2026-98840
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.