Skip to main content

Linux Kernel CVE-2026-64103

| EUVDEUVD-2026-45788 HIGH
Use After Free (CWE-416)
2026-07-19 Linux GHSA-2g34-2vmv-m9r2
7.8
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.0 HIGH

Race condition timing during device teardown raises complexity beyond AC:L; all other metrics align with NVD, as local low-privilege access and full kernel impact are confirmed.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
4.4 MEDIUM
AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H
Red Hat
5.5 MEDIUM
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Aug 12, 2026 - 18:09 vuln.today
CVSS changed
Aug 12, 2026 - 15:52 NVD
7.8 (HIGH)
Patch available
Jul 19, 2026 - 17:03 EUVD
CVE Published
Jul 19, 2026 - 15:40 cve.org
UNKNOWN (no severity yet)
CVE Published
Jul 19, 2026 - 15:40 nvd
HIGH 7.8

DescriptionNVD

In the Linux kernel, the following vulnerability has been resolved:

scsi: isci: Fix use-after-free in device removal path

The ISCI completion tasklet is initialized in isci_host_alloc() (drivers/scsi/isci/init.c:496) and scheduled from both MSI-X and legacy interrupt handlers (drivers/scsi/isci/host.c:223,613).

isci_host_deinit() stops the controller and waits for stop completion, but it never kills completion_tasklet before teardown continues. A top-of-function tasklet_kill() is not sufficient here: interrupts are only disabled when isci_host_stop_complete() runs, so until wait_for_stop() returns the IRQ handlers can still requeue the tasklet. The tasklet callback also re-enables interrupts after draining completions, so killing the tasklet before the source is quiesced leaves the same race open.

Once wait_for_stop() returns, no further IRQ-driven scheduling can occur. Kill completion_tasklet there so teardown cannot race a queued tasklet running on a dead ihost. On remove or unload, the stale callback can otherwise dereference ihost and touch ihost->smu_registers after the host lifetime ends.

A UML + KASAN analogue reproduced the failure class both with no tasklet_kill() and with tasklet_kill() placed before source quiesce, and stayed clean once the kill happened after quiescing the scheduling source.

This mirrors commit f6ab594672d4 ("scsi: aic94xx: fix use-after-free in device removal path"), but ISCI needs the kill after wait_for_stop().

AnalysisAI

Use-after-free in the Linux kernel ISCI (Intel SAS) driver's device removal path allows a local attacker with low privileges to corrupt kernel memory by racing the completion tasklet against driver teardown, potentially enabling privilege escalation. Systems running affected kernel versions with Intel ISCI SAS hardware are vulnerable across multiple stable branches, with vendor-released fixes available in 5.10.258, 5.15.209, 6.1.175, 6.6.142, 6.12.92, 6.18.34, 7.0.11, and 7.1. No public exploit has been identified and EPSS of 0.18% (7th percentile) confirms no observed widespread exploitation, though the KASAN-verified reproduction documented in the fix commit confirms the failure class is reliably triggerable under controlled conditions.

Technical ContextAI

The vulnerability resides in drivers/scsi/isci/, the kernel's SCSI subsystem driver for Intel Integrated SAS Controller Interface (ISCI) hardware. CWE-416 (Use After Free) applies: isci_host_deinit() tears down host resources without fully quiescing the completion_tasklet before memory is freed. The tasklet is initialized in isci_host_alloc() (init.c:496) and can be rescheduled at any time by both MSI-X and legacy IRQ handlers (host.c:223, 613). Placing tasklet_kill() before source quiesce is insufficient because IRQ handlers continue to requeue the tasklet until wait_for_stop() returns; additionally, the tasklet callback itself re-enables interrupts after draining completions, keeping the race window open. The correct fix - confirmed by the stable kernel team - is to call tasklet_kill() only after wait_for_stop() returns, at which point no further IRQ-driven scheduling can occur. Without this, a stale tasklet callback can dereference the already-freed ihost struct and access ihost->smu_registers after host lifetime ends, producing memory corruption. This mirrors the prior fix for the aic94xx driver (commit f6ab594672d4). CPE is cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:*.

RemediationAI

Upgrade to a patched Linux kernel: 5.10.258, 5.15.209, 6.1.175, 6.6.142, 6.12.92, 6.18.34, 7.0.11, or 7.1. Individual stable-branch fix commits are published at https://git.kernel.org/stable/c/ (see references for each branch's specific commit hash). Ubuntu users should apply USN-8575-1 via standard package update mechanisms (https://ubuntu.com/security/notices/USN-8575-1). On systems where immediate kernel patching is not feasible, blacklisting the isci kernel module (echo 'blacklist isci' >> /etc/modprobe.d/isci-block.conf && update-initramfs -u) fully eliminates the attack surface with no side effects on hardware that does not use Intel ISCI SAS controllers; on systems actively relying on ISCI-attached storage, this control is not viable as it will disable those storage devices. Restricting shell access to unprivileged accounts is a secondary defense given the PR:L prerequisite.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

CVE-2026-64103 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy