Investigate in your agent.

Turn this advisory into a focused investigation. Ask your agent to check your project’s versions, explain the evidence, and suggest a compatible fix.

Your agent needs remote MCP support and access to https://cve.new/mcp.

Read the setup guide

Skip to content
Check your stack
CVE-2026-98840

vc_screen: reload vc pointer before if (ret) in vcs_write() to avoid UAF

Products / packages Linux

Published

Share

Severity and exploitation

Not in CISA KEVNo CVSS score

KEV coverage does not rule out exploitation.

KEV checked 14/11/2026, 22:05:30 UTC

Severity

unknown

CVSS 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

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

unaffected

unknown

Other versions: unaffected

Linux · Linux

Linux

10 ranges

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

unknown

Other versions: affected

Automatic dependency matching is unavailable for this record. Use the product evidence and publisher’s instructions to check your installation.

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 sources

Inside the record

Evidence available

Package identity · not supplied
Version evidence
Remediation guidance · not supplied
Weakness classification · not supplied
Additional publishers · not supplied

Describes the evidence in this view, not whether the product is safe.

Original records

CVE-2026-98840

View 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
Linux

Assigning organization

2026-10-30

Timeline

All times UTC
  1. Advisory published

    Publication date supplied by the source.

  2. Source updated

    Latest modification date supplied by the source.

  3. Last imported by cve.new

    Latest catalog import, not the date we first saw this advisory.

What changed

Follow changes
No substantive changes have been recorded here yet. History starts when cve.new observes a change after tracking is enabled; earlier edits are not reconstructed.

Large field values are marked as truncated previews. Original source snapshots remain retained.