scsi: isci: Fix use-after-free in device removal path
Summary
| CVE | CVE-2026-64103 |
|---|---|
| State | PUBLISHED |
| Assigner | Linux |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-07-19 16:17:51 UTC |
| Updated | 2026-08-12 15:49:19 UTC |
| 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(). |
Risk And Classification
Primary CVSS: v3.1 7.8 HIGH from [email protected]
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
EPSS: 0.001770000 probability, percentile 0.074240000 (date 2026-08-02)
Problem Types: CWE-416
CVSS v3.1 Breakdown
Attack Vector
LocalAttack Complexity
LowPrivileges Required
LowUser Interaction
NoneScope
UnchangedConfidentiality
HighIntegrity
HighAvailability
HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
NVD Known Affected Configurations (CPE 2.3)
| Type | Vendor | Product | Version | Update | Edition | Language |
|---|---|---|---|---|---|---|
| Operating System | Linux | Linux Kernel | All | All | All | All |
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | Linux | Linux | affected 6f231dda68080759f1aed3769896e94c73099f0f 1412995e10c74644b47f242aea6e4f3d4180e806 git | Not specified |
| CNA | Linux | Linux | affected 6f231dda68080759f1aed3769896e94c73099f0f a83d3e4daba40d49324cec1c51ed261e1ea48cf1 git | Not specified |
| CNA | Linux | Linux | affected 6f231dda68080759f1aed3769896e94c73099f0f ab2266601a875982f2d2033f41e070a6d5e615e2 git | Not specified |
| CNA | Linux | Linux | affected 6f231dda68080759f1aed3769896e94c73099f0f 309c6058622d080fe8c2fab87c30da82d834d989 git | Not specified |
| CNA | Linux | Linux | affected 6f231dda68080759f1aed3769896e94c73099f0f cb9e72c50e6c81a5903f27e0b397ce8525d7539b git | Not specified |
| CNA | Linux | Linux | affected 6f231dda68080759f1aed3769896e94c73099f0f b9ff8631006233ba246828ac70409d2cb2da38d3 git | Not specified |
| CNA | Linux | Linux | affected 6f231dda68080759f1aed3769896e94c73099f0f 6d40f2f103bb30f52f3dbadbe2c3fdf274a9763c git | Not specified |
| CNA | Linux | Linux | affected 6f231dda68080759f1aed3769896e94c73099f0f b52a8d52c3125ec9a93106ed816582368de34426 git | Not specified |
| CNA | Linux | Linux | affected 3.0 | Not specified |
| CNA | Linux | Linux | unaffected 3.0 semver | Not specified |
| CNA | Linux | Linux | unaffected 5.10.258 5.10.* semver | Not specified |
| CNA | Linux | Linux | unaffected 5.15.209 5.15.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.1.175 6.1.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.6.142 6.6.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.12.92 6.12.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.18.34 6.18.* semver | Not specified |
| CNA | Linux | Linux | unaffected 7.0.11 7.0.* semver | Not specified |
| CNA | Linux | Linux | unaffected 7.1 * original_commit_for_fix | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| git.kernel.org/stable/c/b9ff8631006233ba246828ac70409d2cb2da38d3 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | Patch |
| git.kernel.org/stable/c/1412995e10c74644b47f242aea6e4f3d4180e806 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | Patch |
| git.kernel.org/stable/c/309c6058622d080fe8c2fab87c30da82d834d989 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | Patch |
| git.kernel.org/stable/c/b52a8d52c3125ec9a93106ed816582368de34426 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | Patch |
| git.kernel.org/stable/c/6d40f2f103bb30f52f3dbadbe2c3fdf274a9763c | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | Patch |
| git.kernel.org/stable/c/ab2266601a875982f2d2033f41e070a6d5e615e2 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | Patch |
| git.kernel.org/stable/c/cb9e72c50e6c81a5903f27e0b397ce8525d7539b | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | Patch |
| git.kernel.org/stable/c/a83d3e4daba40d49324cec1c51ed261e1ea48cf1 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | Patch |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.