CVE-2024-26627
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
06/03/2024
Last modified:
14/03/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
scsi: core: Move scsi_host_busy() out of host lock for waking up EH handler<br />
<br />
Inside scsi_eh_wakeup(), scsi_host_busy() is called & checked with host<br />
lock every time for deciding if error handler kthread needs to be waken up.<br />
<br />
This can be too heavy in case of recovery, such as:<br />
<br />
- N hardware queues<br />
<br />
- queue depth is M for each hardware queue<br />
<br />
- each scsi_host_busy() iterates over (N * M) tag/requests<br />
<br />
If recovery is triggered in case that all requests are in-flight, each<br />
scsi_eh_wakeup() is strictly serialized, when scsi_eh_wakeup() is called<br />
for the last in-flight request, scsi_host_busy() has been run for (N * M -<br />
1) times, and request has been iterated for (N*M - 1) * (N * M) times.<br />
<br />
If both N and M are big enough, hard lockup can be triggered on acquiring<br />
host lock, and it is observed on mpi3mr(128 hw queues, queue depth 8169).<br />
<br />
Fix the issue by calling scsi_host_busy() outside the host lock. We don&#39;t<br />
need the host lock for getting busy count because host the lock never<br />
covers that.<br />
<br />
[mkp: Drop unnecessary &#39;busy&#39; variables pointed out by Bart]
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.210 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.149 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.77 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.16 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.7.4 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.8:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.8:rc2:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/07e3ca0f17f579491b5f54e9ed05173d6c1d6fcb
- https://git.kernel.org/stable/c/4373534a9850627a2695317944898eb1283a2db0
- https://git.kernel.org/stable/c/65ead8468c21c2676d4d06f50b46beffdea69df1
- https://git.kernel.org/stable/c/d37c1c81419fdef66ebd0747cf76fb8b7d979059
- https://git.kernel.org/stable/c/db6338f45971b4285ea368432a84033690eaf53c
- https://git.kernel.org/stable/c/f5944853f7a961fedc1227dc8f60393f8936d37c
- https://git.kernel.org/stable/c/07e3ca0f17f579491b5f54e9ed05173d6c1d6fcb
- https://git.kernel.org/stable/c/4373534a9850627a2695317944898eb1283a2db0
- https://git.kernel.org/stable/c/65ead8468c21c2676d4d06f50b46beffdea69df1
- https://git.kernel.org/stable/c/d37c1c81419fdef66ebd0747cf76fb8b7d979059
- https://git.kernel.org/stable/c/db6338f45971b4285ea368432a84033690eaf53c
- https://git.kernel.org/stable/c/f5944853f7a961fedc1227dc8f60393f8936d37c
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html



