CVE-2026-23110

Source
https://cve.org/CVERecord?id=CVE-2026-23110
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23110.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-23110
Downstream
Related
Published
2026-02-04T16:08:30.158Z
Modified
2026-03-24T09:12:36.987712Z
Summary
scsi: core: Wake up the error handler when final completions race against each other
Details

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

scsi: core: Wake up the error handler when final completions race against each other

The fragile ordering between marking commands completed or failed so that the error handler only wakes when the last running command completes or times out has race conditions. These race conditions can cause the SCSI layer to fail to wake the error handler, leaving I/O through the SCSI host stuck as the error state cannot advance.

First, there is an memory ordering issue within scsidechostbusy(). The write which clears SCMDSTATEINFLIGHT may be reordered with reads counting in scsihostbusy(). While the local CPU will see its own write, reordering can allow other CPUs in scsidechostbusy() or scsiehinchostfailed() to see a raised busy count, causing no CPU to see a host busy equal to the host_failed count.

This race condition can be prevented with a memory barrier on the error path to force the write to be visible before counting host busy commands.

Second, there is a general ordering issue with scsiehinchostfailed(). By counting busy commands before incrementing hostfailed, it can race with a final command in scsidechostbusy(), such that scsidechostbusy() does not see hostfailed incremented but scsiehinchostfailed() counts busy commands before SCMDSTATEINFLIGHT is cleared by scsidechost_busy(), resulting in neither waking the error handler task.

This needs the call to scsihostbusy() to be moved after host_failed is incremented to close the race condition.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23110.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
6eb045e092efefafc6687409a6fa6d1dabf0fb69
Fixed
cc872e35c0df80062abc71268d690a2f749e542e
Fixed
6d9a367be356101963c249ebf10ea10b32886607
Fixed
9fdc6f28d5e81350ab1d2cac8389062bd09e61e1
Fixed
64ae21b9c4f0c7e60cf47a53fa7ab68852079ef0
Fixed
219f009ebfd1ef3970888ee9eef4c8a06357f862
Fixed
fe2f8ad6f0999db3b318359a01ee0108c703a8c3

Database specific

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

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.5.0
Fixed
5.10.249
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
6.1.162
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.122
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.68
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.8

Database specific

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