CVE-2022-50552

blk-mq: use quiesced elevator switch when reinitializing queues

HIGH
7.8
CVSS Score
Published: October 7, 2025 at 03:21 PM UTC
Updated: June 17, 2026 at 05:23 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.8
Exploit prediction
EPSS 0.2%

Description

In the Linux kernel, the following vulnerability has been resolved: blk-mq: use quiesced elevator switch when reinitializing queues The hctx's run_work may be racing with the elevator switch when reinitializing hardware queues. The queue is merely frozen in this context, but that only prevents requests from allocating and doesn't stop the hctx work from running. The work may get an elevator pointer that's being torn down, and can result in use-after-free errors and kernel panics (example below). Use the quiesced elevator switch instead, and make the previous one static since it is now only used locally. nvme nvme0: resetting controller nvme nvme0: 32/0/0 default/read/poll queues BUG: kernel NULL pointer dereference, address: 0000000000000008 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 80000020c8861067 P4D 80000020c8861067 PUD 250f8c8067 PMD 0 Oops: 0000 [#1] SMP PTI Workqueue: kblockd blk_mq_run_work_fn RIP: 0010:kyber_has_work+0x29/0x70 ... Call Trace: __blk_mq_do_dispatch_sched+0x83/0x2b0 __blk_mq_sched_dispatch_requests+0x12e/0x170 blk_mq_sched_dispatch_requests+0x30/0x60 __blk_mq_run_hw_queue+0x2b/0x50 process_one_work+0x1ef/0x380 worker_thread+0x2d/0x3e0

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

4.19 ≤ v < 5.10.2584.19 ≤ v < 5.15.2094.19 ≤ v < 5.19.174.19 ≤ v < 6.0.34.19 ≤ v < 6.16.0 ≤ v < 6.0.34.19d48ece209f82c9ce07be942441b53d3fa3664936
Vendor states this is fixed in 0f90015383cd3f1128bebfbe7a97122d97808046 (fixed)
Vendor states this is fixed in 63a681bcc32a43528ce0f690569f7f48e59c3963 (fixed)
Vendor states this is fixed in 8237c01f1696bc53c470493bf1fe092a107648a6 (fixed)
Vendor states this is fixed in 9646443f28f33ec545ae303e613c3f476fad4dc1 (fixed)
Vendor states this is fixed in c478b3b2900f1834cf9eda5bfef0d5696099505d (fixed)
Vendor states this is fixed in 4.19 (unaffected)
Vendor states this is fixed in 5.10.258 (unaffected)
Vendor states this is fixed in 5.15.209 (unaffected)
Vendor states this is fixed in 5.19.17 (unaffected)
Vendor states this is fixed in 6.0.3 (unaffected)
Vendor states this is fixed in 6.1 (unaffected)

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
HIGH
Integrity
HIGH
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-416

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card