Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-98840— vc_screen: reload vc pointer before if (ret) in vcs_write() to avoid UAF

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

在 Linux 内核中,以下漏洞已得到修复: vc_screen:在 vcs_write() 函数中,于 判断之前重新加载 vc 指针,以避免“释放后使用”(Use-After-Free, UAF)问题。 此前,由提交 8fb9ea65c9d1("vc_screen: 在 vcs_write() 中重新加载 struct vc_data 指针以规避 UAF")所添加的 指针重新加载操作,被置于 代码块之后。因此,当因复制失败而触发 退出循环时, 指针并未被重新加载。若在未加锁的 窗口期间, 已通过 调用 被释放,则

AI Predicted 7.8 Difficulty: Moderate EPSS 0.17% · P6

Affected Version Matrix 24

VendorProduct Version RangeStatus
Linux Linux 73049768ad57145acd337102c5aa3c788e6642c8< 1485a3dd97ab1af2605243cabe6b604546d46dd1 affected
7cc3dd79777f6ae4625ec37e84dd18a26dc88bde< 233a2e190b12884d186027d0b86d43a48799b69c affected
a287620312dc6dcb9a093417a0e589bf30fcf38a< 9dfcadc5e003fb250dd471db90144bd5366140e9 affected
a287620312dc6dcb9a093417a0e589bf30fcf38a< 226bd5603371cd9f6642cbb9e9a677f445de3530 affected
43a6281790273c1b0a9ab76609ff0245b968f1e6 affected
b6bbb85cf45bf0b070e741997fe0af3a772c5ad5 affected
ff4806202749a51938236214adc0281481a57366 affected
8232fca738011ca2ec865b46ec721d1796dc0580 affected
… +16 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-98840

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
vc_screen: reload vc pointer before if (ret) in vcs_write() to avoid UAF
Source: CVE Program / CVE List V5
Vulnerability Description
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().
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 73049768ad57145acd337102c5aa3c788e6642c8 ~ 1485a3dd97ab1af2605243cabe6b604546d46dd1 -
Linux Linux 7.2 -

II. Public POCs for CVE-2026-98840

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-98840

请登录查看更多情报信息。

Patches & Fixes for CVE-2026-98840 (3)

Same Patch Batch · Linux · 2026-10-18 · 435 CVEs total

CVE-2026-98719 KVM: SEV: Nullify "have run CPUs" mask pointer when freeing it
CVE-2026-98732 Bluetooth: btintel: fix buffer over-read in btintel_hw_error()
CVE-2026-98731 Bluetooth: btintel_pcie: fix plen overflow in btintel_pcie_recv_frame()
CVE-2026-98730 Bluetooth: btintel_pcie: reject oversized TX packets in send_frame()
CVE-2026-98729 x86/mm: Don't apply va_align to hugetlb mappings on AMD F15h
CVE-2026-98728 tpm: fix off-by-four bounds check in tpm2_get_random()
CVE-2026-98727 nvme-multipath: set BLK_FEAT_ZONED only after the zone info is known
CVE-2026-98726 nvme-multipath: fix underflow in ANA log bounds checks
CVE-2026-98725 nvmet-auth: fix out-of-bounds write in nvmet_auth_challenge()
CVE-2026-98724 nvmet: pci-epf: reject too-short SGL segments
CVE-2026-98723 nvmet: copy the hostid into the ctrl before creating PR pc_refs
CVE-2026-98722 mtd: block2mtd: Fix divide error when erase_size is zero
CVE-2026-98721 mtd: rawnand: cadence: Initialize IRQ state before requesting IRQ
CVE-2026-98720 KVM: nVMX: Force MSR bitmap refresh if runtime eVMCS controls are modified
CVE-2026-98707 wifi: mac80211: shut down RX BA session timer on teardown
CVE-2026-98711 wifi: cw1200: fix TX padding OOB read leaking heap data to device
CVE-2026-98710 wifi: iwlegacy: 3945: free EEPROM data on remove
CVE-2026-98709 wifi: mac80211: count only matching reservations in reserved switch
CVE-2026-98712 KVM: arm64: vgic: Take a refcount on IRQs referenced by last_lr_irq
CVE-2026-98708 wifi: mac80211: keep paired old chanctx alive

Showing top 20 of 435 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-98840

No comments yet


Leave a comment