vc_screen: reload vc pointer before if (ret) in vcs_write() to avoid UAF
Severity and exploitation
KEV coverage does not rule out exploitation.
Severity
unknownCVSS measures technical severity, not the likelihood of an attack.
Known exploitation
Not listed in the checked CISA KEV catalog
Absence from CISA KEV does not rule out attacks.
Public exploit
Not established by this record
Missing evidence does not mean no public exploit exists.
Remediation
Fix status not established
No structured fix or guidance is available here. Check the latest publisher advisory.
What this means
The Linux kernel has a use-after-free vulnerability in vc_screen, affecting versions including 5.10.260 to 5.10.273, 5.15.211 to 5.15.224, 6.1.177 to 6.1.191, 6.6.144 to 6.6.160, 6.12.95 to 6.12.113, 6.18.37 to 6.18.56, 7.0.14, 7.1.2, and 7.2. The vulnerability occurs when the 'vc' pointer is not reloaded before the 'if (ret)' block in vcs_write(), allowing a stale non-NULL 'vc' to be used. This can lead to a read from freed memory in vcs_notifier().
Summarized by @cf/meta/llama-3.3-70b-instruct-fp8-fast. Verify details against the original sources.Attack conditions
No attack-condition excerpt has been identified here. Review the full source description and references for authentication, network access, and configuration requirements.
Review supporting sources →Affected versions
Check the exact model, release, and any platform requirements against your installation.
Linux · Linux
Linux
18 ranges
Linux · Linux
Linux
Compare with this publisher’s ranges. This does not inspect your installation.
affected
43a6281790273c1b0a9ab76609ff0245b968f1e6 → before cbc05413d3694193494b2374b56bae801ac41fec
git versions
b6bbb85cf45bf0b070e741997fe0af3a772c5ad5 → before 942742000a0288d4ca60c448894aabacd48004d5
git versions
ff4806202749a51938236214adc0281481a57366 → before c9f56d4b29792a62b17f2051ba93fd3b40a479ec
git versions
8232fca738011ca2ec865b46ec721d1796dc0580 → before c073d01f6f5367c3a4f07efd507274ed0d03acd0
git versions
73049768ad57145acd337102c5aa3c788e6642c8 → before 1485a3dd97ab1af2605243cabe6b604546d46dd1
git versions
7cc3dd79777f6ae4625ec37e84dd18a26dc88bde → before 233a2e190b12884d186027d0b86d43a48799b69c
git versions
a287620312dc6dcb9a093417a0e589bf30fcf38a → before 9dfcadc5e003fb250dd471db90144bd5366140e9
git versions
a287620312dc6dcb9a093417a0e589bf30fcf38a → before 226bd5603371cd9f6642cbb9e9a677f445de3530
git versions
74be188eb2dc1c99d63986167b9a67d415fe7326
git versions
09a43e81279b8da15526da09877134b8bcf618b0
git versions
5.10.260 → before 5.10.273
semver versions
5.15.211 → before 5.15.224
semver versions
6.1.177 → before 6.1.191
semver versions
6.6.144 → before 6.6.160
semver versions
6.12.95 → before 6.12.113
semver versions
6.18.37 → before 6.18.56
semver versions
7.0.14 → before 7.1
semver versions
7.1.2 → before 7.2
semver versions
Other versions: unaffected
Linux · Linux
Linux
10 ranges
Linux · Linux
Linux
Compare with this publisher’s ranges. This does not inspect your installation.
affected
7.2
unaffected
0 → before 7.2
semver versions
5.10.273 → through 5.10.*
semver versions
5.15.224 → through 5.15.*
semver versions
6.1.191 → through 6.1.*
semver versions
6.6.160 → through 6.6.*
semver versions
6.12.113 → through 6.12.*
semver versions
6.18.56 → through 6.18.*
semver versions
7.2.10 → through 7.2.*
semver versions
7.3 → through *
original_commit_for_fix versions
Other versions: affected
What to do
Compare your installed product and version with the affected versions above. A matching product name alone does not confirm exposure.
No structured fix or remediation guidance is available here. Check the full source description and vendor’s latest advisory for a patch or workaround; do not assume another version is safe.
cve.new guidance unless attributed to a publisher. This page does not inspect your installation.
Public exploit evidence
No public exploit reference is identified in the imported evidence. This is not a claim that no exploit exists.
Original source description
Read the full publisher 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().
References
8 sourcesInside the record
Evidence available
Describes the evidence in this view, not whether the product is safe.
Original records
CVE-2026-98840View the latest unmodified CVE JSON from the official source. It may be newer than this imported page.
cve.new JSON →Environment requirements
These conditions apply together as specified by the publisher. A matching product name alone does not establish exposure.
Linux · platform conditions
Any condition may hold
Vulnerable product
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*From (inclusive): 5.10.260
Before: 5.10.273
Vulnerable product
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*From (inclusive): 5.15.211
Before: 5.15.224
Vulnerable product
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*From (inclusive): 6.1.177
Before: 6.1.191
Vulnerable product
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*From (inclusive): 6.6.144
Before: 6.6.160
Vulnerable product
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*From (inclusive): 6.12.95
Before: 6.12.113
Vulnerable product
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*From (inclusive): 6.18.37
Before: 6.18.56
Vulnerable product
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*From (inclusive): 7.2
Before: 7.2.10
Vulnerable product
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*From (inclusive): 7.2
Before: 7.3
Vulnerable product
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*From (inclusive): 7.0.14
Vulnerable product
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*From (inclusive): 7.1.2
Applicability preview
[
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.10.260",
"versionEndExcluding": "5.10.273"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.15.211",
"versionEndExcluding": "5.15.224"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.1.177",
"versionEndExcluding": "6.1.191"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.6.144",
"versionEndExcluding": "6.6.160"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.12.95",
"versionEndExcluding": "6.12.113"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.18.37",
"versionEndExcluding": "6.18.56"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.2",
"versionEndExcluding": "7.2.10"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.2",
"versionEndExcluding": "7.3"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.0.14"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.1.2"
}
]
}
]
}
]Contributing organizations · 1
Assigning organization
Timeline
All times UTCAdvisory published
Publication date supplied by the source.
Source updated
Latest modification date supplied by the source.
Last imported by cve.new
Latest catalog import, not the date we first saw this advisory.
What changed
Follow changesLarge field values are marked as truncated previews. Original source snapshots remain retained.