Bug 2502449 (CVE-2026-64017)

Summary: CVE-2026-64017 kernel: blk-mq: pop cached request if it is usable
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security DevOps Team <prodsec-dev>
Status: NEW --- QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: unspecifiedCC: rhel-process-autobot, watson-tool-maintainers
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in the Linux kernel's blk-mq component. This use-after-free vulnerability occurs when a task attempts to submit a bio (a data structure for I/O operations) to blk-mq. If the task is interrupted and sleeps after checking for a cached request but before using it, the cached request can be prematurely freed. This can lead to system instability or crashes.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description OSIDB Bzimport 2026-07-19 16:08:47 UTC
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.

Comment 1 Mauro Matteo Cascella 2026-07-21 14:13:44 UTC
Upstream advisory:
https://lore.kernel.org/linux-cve-announce/2026071900-CVE-2026-64017-c8ee@gregkh/T

Comment 4 errata-xmlrpc 2026-07-28 11:24:55 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9

Via RHSA-2026:47040 https://access.redhat.com/errata/RHSA-2026:47040

Comment 5 errata-xmlrpc 2026-08-20 05:22:31 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 10

Via RHSA-2026:57251 https://access.redhat.com/errata/RHSA-2026:57251

Comment 6 Jon Orris 2026-09-23 02:24:14 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9.6 Extended Update Support

Via RHSA-2026:70484 https://access.redhat.com/errata/RHSA-2026:70484

Comment 8 Jon Orris 2026-10-05 00:36:12 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 10.0 Extended Update Support

Via RHSA-2026:75560 https://access.redhat.com/errata/RHSA-2026:75560