CVE-2024-26846
Severity CVSS v4.0:
Pending analysis
Type:
CWE-415
Double Free
Publication date:
17/04/2024
Last modified:
21/03/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
nvme-fc: do not wait in vain when unloading module<br />
<br />
The module exit path has race between deleting all controllers and<br />
freeing &#39;left over IDs&#39;. To prevent double free a synchronization<br />
between nvme_delete_ctrl and ida_destroy has been added by the initial<br />
commit.<br />
<br />
There is some logic around trying to prevent from hanging forever in<br />
wait_for_completion, though it does not handling all cases. E.g.<br />
blktests is able to reproduce the situation where the module unload<br />
hangs forever.<br />
<br />
If we completely rely on the cleanup code executed from the<br />
nvme_delete_ctrl path, all IDs will be freed eventually. This makes<br />
calling ida_destroy unnecessary. We only have to ensure that all<br />
nvme_delete_ctrl code has been executed before we leave<br />
nvme_fc_exit_module. This is done by flushing the nvme_delete_wq<br />
workqueue.<br />
<br />
While at it, remove the unused nvme_fc_wq workqueue too.
Impact
Base Score 3.x
4.40
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.10.211 (excluding) | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.150 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.80 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.19 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.7.7 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.8:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.8:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* |
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/085195aa90a924c79e35569bcdad860d764a8e17
- https://git.kernel.org/stable/c/0bf567d6d9ffe09e059bbdfb4d07143cef42c75c
- https://git.kernel.org/stable/c/4f2c95015ec2a1899161be6c0bdaecedd5a7bfb2
- https://git.kernel.org/stable/c/70fbfc47a392b98e5f8dba70c6efc6839205c982
- https://git.kernel.org/stable/c/baa6b7eb8c66486bd64608adc63fe03b30d3c0b9
- https://git.kernel.org/stable/c/c0882c366418bf9c19e1ba7f270fe377a9bf5d67
- https://git.kernel.org/stable/c/085195aa90a924c79e35569bcdad860d764a8e17
- https://git.kernel.org/stable/c/0bf567d6d9ffe09e059bbdfb4d07143cef42c75c
- https://git.kernel.org/stable/c/4f2c95015ec2a1899161be6c0bdaecedd5a7bfb2
- https://git.kernel.org/stable/c/70fbfc47a392b98e5f8dba70c6efc6839205c982
- https://git.kernel.org/stable/c/baa6b7eb8c66486bd64608adc63fe03b30d3c0b9
- https://git.kernel.org/stable/c/c0882c366418bf9c19e1ba7f270fe377a9bf5d67
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html



