CVE-2026-64103

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

HIGH
7.8
CVSS Score
Published: July 19, 2026 at 03:40 PM UTC
Updated: August 12, 2026 at 04:08 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.8
Exploit prediction
EPSS 0.1%

Description

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().

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

3.0 ≤ v < 5.10.2583.0 ≤ v < 5.15.2093.0 ≤ v < 6.1.1753.0 ≤ v < 6.12.923.0 ≤ v < 6.18.343.0 ≤ v < 6.6.1423.0 ≤ v < 7.0.113.0 ≤ v < 7.13.0.1 ≤ v < 5.10.2585.11 ≤ v < 5.15.2095.16 ≤ v < 6.1.1756.13 ≤ v < 6.18.346.19 ≤ v < 7.0.116.2 ≤ v < 6.6.1426.7 ≤ v < 6.12.923.03.0 rc63.0 rc76f231dda68080759f1aed3769896e94c73099f0f7.1 rc17.1 rc27.1 rc37.1 rc4
Vendor states this is fixed in 1412995e10c74644b47f242aea6e4f3d4180e806 (fixed)
Vendor states this is fixed in 309c6058622d080fe8c2fab87c30da82d834d989 (fixed)
Vendor states this is fixed in 6d40f2f103bb30f52f3dbadbe2c3fdf274a9763c (fixed)
Vendor states this is fixed in a83d3e4daba40d49324cec1c51ed261e1ea48cf1 (fixed)
Vendor states this is fixed in ab2266601a875982f2d2033f41e070a6d5e615e2 (fixed)
Vendor states this is fixed in b52a8d52c3125ec9a93106ed816582368de34426 (fixed)
Vendor states this is fixed in b9ff8631006233ba246828ac70409d2cb2da38d3 (fixed)
Vendor states this is fixed in cb9e72c50e6c81a5903f27e0b397ce8525d7539b (fixed)
Vendor states this is fixed in 3.0 (unaffected)
Vendor states this is fixed in 5.10.258 (unaffected)
Vendor states this is fixed in 5.15.209 (unaffected)
Vendor states this is fixed in 6.1.175 (unaffected)
Vendor states this is fixed in 6.12.92 (unaffected)
Vendor states this is fixed in 6.18.34 (unaffected)
Vendor states this is fixed in 6.6.142 (unaffected)
Vendor states this is fixed in 7.0.11 (unaffected)
Vendor states this is fixed in 7.1 (unaffected)

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
HIGH
Integrity
HIGH
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
CWE-416

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card