Use-after-free in Linux kernel vc_screen write path
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- —
- Confidentiality · integrity · availability
- —
- Fix status
- Partial Red Hat: 1 without a fix
No CVSS vector from any source. Fix status from CNA and Red Hat.
Summary
The Linux kernel vc_screen driver in vcs_write() can use a virtual console structure after it has been freed. A reload of the pointer sits after a copy-failure branch, so a freed structure can be used when a write fails while the console is being deallocated. The source description does not state what an attacker must control to trigger this.
Written with Claude Haiku 5.5 from the sources below · 2026-10-30
Description from the CNA
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().
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Linux | Linux | 5.10.260 to before 5.10.273; 5.15.211 to before 5.15.224; 6.1.177 to before 6.1.191; 6.6.144 to before 6.6.160; 6.12.95 to before 6.12.113; 6.18.37 to before 6.18.56; 7.0.14 to before 7.1; 7.1.2 to before 7.2 | 5.10.273, 5.15.224, 6.1.191, 6.6.160, 6.12.113, 6.18.56, 7.1, 7.2 | Patch available | CNA |
| Linux | Linux | 7.2 and later | 5.10.273, 5.15.224, 6.1.191, 6.6.160, 6.12.113, 6.18.56, 7.2.10, 7.3 | Patch available | CNA |
- Linux VendorLinux Affected 5.10.260 to before 5.10.273; 5.15.211 to before 5.15.224; 6.1.177 to before 6.1.191; 6.6.144 to before 6.6.160; 6.12.95 to before 6.12.113; 6.18.37 to before 6.18.56; 7.0.14 to before 7.1; 7.1.2 to before 7.2 Fixed in 5.10.273, 5.15.224, 6.1.191, 6.6.160, 6.12.113, 6.18.56, 7.1, 7.2 Patch available CNA
- Linux VendorLinux Affected 7.2 and later Fixed in 5.10.273, 5.15.224, 6.1.191, 6.6.160, 6.12.113, 6.18.56, 7.2.10, 7.3 Patch available CNA
Remediation
Upgrade the Linux kernel to a fixed version: 5.10.273, 5.15.224, 6.1.191, 6.6.160, 6.12.113, 6.18.56, 7.1 or 7.2 on the respective branches, and 7.2.10 or 7.3 for the 7.2 series. Red Hat Enterprise Linux 10 is affected without a fix, and Red Hat lists no available fix plan for it.
Written with Claude Haiku 5.5 from the sources below · 2026-10-30
- Fix · CNA Linux (Linux) Fixed in 5.10.273, 5.15.224, 6.1.191, 6.6.160, 6.12.113, 6.18.56, 7.1, 7.2
- Fix · CNA Linux (Linux) Fixed in 5.10.273, 5.15.224, 6.1.191, 6.6.160, 6.12.113, 6.18.56, 7.2.10, 7.3
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Enterprise Linux 10 | Affected | No fix yet: Fix deferred |
Timeline
- 2026-10-18 Threatist record created from CVE-2026-98840
- 2026-10-18 Alias added: GHSA-vpw3-5qwq-wxvw
- 2026-10-19 Fix available: Linux/[email protected] · CNA
- 2026-10-21 Affected versions changed · Red Hat
- 2026-10-21 CVSS score added · Red Hat
- 2026-10-21 Fix available: Linux/[email protected], Linux/Linux@c073d01f6f5367c3a4f07efd507274ed0d03acd0 · CNA
- 2026-10-21 1 new reference · CNA
- 2026-10-30 Fix available: Linux/[email protected], Linux/[email protected], Linux/[email protected] +3 · CNA
- 2026-10-30 3 new references · CNA
References
Other 8
- https://git.kernel.org/stable/c/cbc05413d3694193494b2374b56bae801ac41fec
- https://git.kernel.org/stable/c/942742000a0288d4ca60c448894aabacd48004d5
- https://git.kernel.org/stable/c/c9f56d4b29792a62b17f2051ba93fd3b40a479ec
- https://git.kernel.org/stable/c/c073d01f6f5367c3a4f07efd507274ed0d03acd0
- https://git.kernel.org/stable/c/1485a3dd97ab1af2605243cabe6b604546d46dd1
- https://git.kernel.org/stable/c/233a2e190b12884d186027d0b86d43a48799b69c
- https://git.kernel.org/stable/c/9dfcadc5e003fb250dd471db90144bd5366140e9
- https://git.kernel.org/stable/c/226bd5603371cd9f6642cbb9e9a677f445de3530
More Linux vulnerabilities
- TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
- TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
- TI-2021-02452 Incorrect authorization in Ubuntu linux kernel KEVCVSS 3.1HIGH 8.8
- TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
- TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
- TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
Sources
- CVE-2026-98840 · CVE Program
- CVE-2026-98840 · NVD
- FIRST EPSS
- GHSA-vpw3-5qwq-wxvw · GitHub Advisory Database · CC BY 4.0
- CVE-2026-98840 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences