Description
In the Linux kernel, the following vulnerability has been resolved: nvme-pci: fix a NULL pointer dereference in nvme_alloc_admin_tags In nvme_alloc_admin_tags, the admin_q can be set to an error (typically -ENOMEM) if the blk_mq_init_queue call fails to set up the queue, which is checked immediately after the call. However, when we return the error message up the stack, to nvme_reset_work the error takes us to nvme_remove_dead_ctrl() nvme_dev_disable() nvme_suspend_queue(&dev->queues[0]). Here, we only check that the admin_q is non-NULL, rather than not an error or NULL, and begin quiescing a queue that never existed, leading to bad / NULL pointer dereference.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
35b489d32fcc37e8735f41aa794b24cf9d1e74f5 to < 8321b17789f614414206af07e17ce4751c95dc76affected35b489d32fcc37e8735f41aa794b24cf9d1e74f5 to < 9e649471b396fa0139d53919354ce1eace9b9a24affected35b489d32fcc37e8735f41aa794b24cf9d1e74f5 to < 8da2b7bdb47e94bbc4062a3978c708926bcb022caffected35b489d32fcc37e8735f41aa794b24cf9d1e74f5 to < f76729662650cd7bc8f8194e057af381370349a7affected35b489d32fcc37e8735f41aa794b24cf9d1e74f5 to < af98940dd33c9f9e1beb4f71c0a39260100e2a65affected35b489d32fcc37e8735f41aa794b24cf9d1e74f5 to < 906c81dba8ee8057523859b5e1a2479e9fd34860affected35b489d32fcc37e8735f41aa794b24cf9d1e74f5 to < 7a28556082d1fbcbc599baf1c24252dfc73efefcaffected35b489d32fcc37e8735f41aa794b24cf9d1e74f5 to < 54a4c1e47d1b2585e74920399455bd9abbfb2bd7affected35b489d32fcc37e8735f41aa794b24cf9d1e74f5 to < da42761181627e9bdc37d18368b827948a583929affected
Linux Linux
Default version status: affected
3.19affected0 to < 3.19unaffected4.9.318 to ≤ 4.9.*unaffected4.14.283 to ≤ 4.14.*unaffected4.19.247 to ≤ 4.19.*unaffected5.4.198 to ≤ 5.4.*unaffected5.10.121 to ≤ 5.10.*unaffected5.15.46 to ≤ 5.15.*unaffected5.17.14 to ≤ 5.17.*unaffected5.18.3 to ≤ 5.18.*unaffected5.19 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/8321b17789f614414206af07e17ce4751c95dc76 ↗
- https://git.kernel.org/stable/c/9e649471b396fa0139d53919354ce1eace9b9a24 ↗
- https://git.kernel.org/stable/c/8da2b7bdb47e94bbc4062a3978c708926bcb022c ↗
- https://git.kernel.org/stable/c/f76729662650cd7bc8f8194e057af381370349a7 ↗
- https://git.kernel.org/stable/c/af98940dd33c9f9e1beb4f71c0a39260100e2a65 ↗
- https://git.kernel.org/stable/c/906c81dba8ee8057523859b5e1a2479e9fd34860 ↗
- https://git.kernel.org/stable/c/7a28556082d1fbcbc599baf1c24252dfc73efefc ↗
- https://git.kernel.org/stable/c/54a4c1e47d1b2585e74920399455bd9abbfb2bd7 ↗
- https://git.kernel.org/stable/c/da42761181627e9bdc37d18368b827948a583929 ↗