CVE-2026-64103

Source
https://cve.org/CVERecord?id=CVE-2026-64103
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-64103.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2026-64103
Downstream
Published
2026-07-19T15:40:07.372Z
Modified
2026-07-21T03:46:53.819407028Z
Summary
scsi: isci: Fix use-after-free in device removal path
Details

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 iscihostalloc() (drivers/scsi/isci/init.c:496) and scheduled from both MSI-X and legacy interrupt handlers (drivers/scsi/isci/host.c:223,613).

iscihostdeinit() stops the controller and waits for stop completion, but it never kills completiontasklet before teardown continues. A top-of-function taskletkill() is not sufficient here: interrupts are only disabled when iscihoststopcomplete() runs, so until waitfor_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 waitforstop() returns, no further IRQ-driven scheduling can occur. Kill completiontasklet 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->smuregisters after the host lifetime ends.

A UML + KASAN analogue reproduced the failure class both with no taskletkill() and with taskletkill() 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 waitforstop().

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64103.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
6f231dda68080759f1aed3769896e94c73099f0f
Fixed
1412995e10c74644b47f242aea6e4f3d4180e806
Fixed
a83d3e4daba40d49324cec1c51ed261e1ea48cf1
Fixed
ab2266601a875982f2d2033f41e070a6d5e615e2
Fixed
309c6058622d080fe8c2fab87c30da82d834d989
Fixed
cb9e72c50e6c81a5903f27e0b397ce8525d7539b
Fixed
b9ff8631006233ba246828ac70409d2cb2da38d3
Fixed
6d40f2f103bb30f52f3dbadbe2c3fdf274a9763c
Fixed
b52a8d52c3125ec9a93106ed816582368de34426

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-64103.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
3.0.0
Fixed
5.10.258
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.209
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.175
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.142
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.92
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.34
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.0.11

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-64103.json"