# CVE-2022-49901: blk-mq: Fix kmemleak in blk_mq_init_allocated_queue

CVE-2022-49901 is fixed in linux on 1 platform, first by DEBIAN-CVE-2022-49901, released May 1, 2025. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2022-49901
- Priority: Routine
- CVSS: 5.5 (Moderate)
- EPSS: 0.0017
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: May 1, 2025
- Weakness: Missing Release of Memory after Effective Lifetime
- Vendor advisory: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2022-49901

## Description

In the Linux kernel, the following vulnerability has been resolved:  blk-mq: Fix kmemleak in blk_mq_init_allocated_queue  There is a kmemleak caused by modprobe null_blk.ko  unreferenced object 0xffff8881acb1f000 (size 1024):   comm "modprobe", pid 836, jiffies 4294971190 (age 27.068s)   hex dump (first 32 bytes):     00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00  .....N..........     ff ff ff ff ff ff ff ff 00 53 99 9e ff ff ff ff  .........S......   backtrace:     [<000000004a10c249>] kmalloc_node_trace+0x22/0x60     [<00000000648f7950>] blk_mq_alloc_and_init_hctx+0x289/0x350     [<00000000af06de0e>] blk_mq_realloc_hw_ctxs+0x2fe/0x3d0     [<00000000e00c1872>] blk_mq_init_allocated_queue+0x48c/0x1440     [<00000000d16b4e68>] __blk_mq_alloc_disk+0xc8/0x1c0     [<00000000d10c98c3>] 0xffffffffc450d69d     [<00000000b9299f48>] 0xffffffffc4538392     [<0000000061c39ed6>] do_one_initcall+0xd0/0x4f0     [<00000000b389383b>] do_init_module+0x1a4/0x680     [<0000000087cf3542>] load_module+0x6249/0x7110     [<00000000beba61b8>] __do_sys_finit_module+0x140/0x200     [<00000000fdcfff51>] do_syscall_64+0x35/0x80     [<000000003c0f1f71>] entry_SYSCALL_64_after_hwframe+0x46/0xb0  That is because q->ma_ops is set to NULL before blk_release_queue is called.  blk_mq_init_queue_data   blk_mq_init_allocated_queue     blk_mq_realloc_hw_ctxs       for (i = 0; i < set->nr_hw_queues; i++) {         old_hctx = xa_load(&q->hctx_table, i);         if (!blk_mq_alloc_and_init_hctx(.., i, ..))		[1]           if (!old_hctx) 	    break;        xa_for_each_start(&q->hctx_table, j, hctx, j)         blk_mq_exit_hctx(q, set, hctx, j); 			[2]      if (!q->nr_hw_queues)					[3]       goto err_hctxs;    err_exit:       q->mq_ops = NULL;			  			[4]    blk_put_queue     blk_release_queue       if (queue_is_mq(q))					[5]         blk_mq_release(q);  [1]: blk_mq_alloc_and_init_hctx failed at i != 0. [2]: The hctxs allocated by [1] are moved to q->unused_hctx_list and will be cleaned up in blk_mq_release. [3]: q->nr_hw_queues is 0. [4]: Set q->mq_ops to NULL. [5]: queue_is_mq returns false due to [4]. And blk_mq_release will not be called. The hctxs in q->unused_hctx_list are leaked.  To fix it, call blk_release_queue in exception path.

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | linux Debian 12.15 (bookworm) | 6.0.8-1 | [DEBIAN-CVE-2022-49901](https://patchblox.com/security/data/fix/linux/debian-cve-2022-49901.md) | May 1, 2025 |
| Linux | linux Debian 13.5 (trixie) | 6.0.8-1 | [DEBIAN-CVE-2022-49901](https://patchblox.com/security/data/fix/linux/debian-cve-2022-49901.md) | May 1, 2025 |
| Linux | linux Debian 14 | 6.0.8-1 | [DEBIAN-CVE-2022-49901](https://patchblox.com/security/data/fix/linux/debian-cve-2022-49901.md) | May 1, 2025 |

---

Data as of 2026-11-08T06:59:42Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
