Description
In the Linux kernel, the following vulnerability has been resolved:

rust: block: fix GenDisk cleanup paths

GenDiskBuilder::build() still has fallible work after
__blk_mq_alloc_disk(), but its error path only recovers the
foreign queue data. That leaks the temporary gendisk and
request_queue until later teardown. If the caller moved the last
Arc<TagSet<T>> into build(), the leaked queue can retain blk-mq
state after the tag set is dropped.

Fix the pre-registration failure path by dropping the temporary
gendisk reference with put_disk() before recovering queue_data,
so disk_release() can tear down the owned queue.

Also pair GenDisk::drop() with put_disk() after del_gendisk().
Once a Rust GenDisk has been added with device_add_disk(),
del_gendisk() only unregisters it; the final gendisk reference
still has to be dropped to complete the release path.
Published: 2026-07-25
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The GenDiskBuilder::build routine in the Linux kernel fails to drop references to a temporary generational disk and its request queue when a partial allocation fails. This oversight allows the leaked structures to persist until a later teardown, thereby consuming kernel resources that should have been reclaimed. The remaining gendisk contains a request queue with blk‑mq state, which can accumulate over time and potentially exhaust kernel memory or block subsystem resources, leading to a denial of service of the block device layer. The weakness is classified as CWE-772 Resource Leak.

Affected Systems

All Linux kernel releases older than the commit that introduces the put_disk() cleanup on the error path and the subsequent pairing of GenDisk::build and GenDisk::drop patches with put_disk() after del_gendisk() are affected. The specific version numbers are not listed, so any distribution running a kernel that predates these changes, including mainstream releases that have not yet incorporated the patches, is at risk.

Risk and Exploitability

The EPSS score is reported as < 1 %, and the vulnerability is not listed in CISA’s KEV catalog, indicating a very low likelihood of exploitation in the wild. Based on the description, it is inferred that exploitation would require a local context where kernel or driver code triggers a GenDiskBuilder::build failure, such as malformed block driver input or resource exhaustion. The attack surface is therefore limited to systems with untrusted or malfunctioning block drivers and does not enable remote code execution or data disclosure. The potential impact is restricted to resource exhaustion and possible denial of service of the block subsystem.

Generated by OpenCVE AI on August 5, 2026 at 00:57 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the GenDiskBuilder::build and GenDisk::drop patches with put_disk() cleanup handling.
  • If a kernel upgrade is not immediately possible, limit the creation of new block devices or temporarily block the installation of untrusted block device drivers until the patch is available. More appropriate to ensure that custom or third‑party block drivers do not bypass the GenDisk cleanup logic or alter blk‑mq settings.
  • Monitor kernel logs for gendisk allocation failures or abnormal blk‑mq queue usage to detect lingering resource leaks.

Generated by OpenCVE AI on August 5, 2026 at 00:57 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4724-1 linux-6.12 new package
Debian DSA Debian DSA DSA-6405-1 linux security update
History

Tue, 28 Jul 2026 00:15:00 +0000


Sat, 25 Jul 2026 09:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: rust: block: fix GenDisk cleanup paths GenDiskBuilder::build() still has fallible work after __blk_mq_alloc_disk(), but its error path only recovers the foreign queue data. That leaks the temporary gendisk and request_queue until later teardown. If the caller moved the last Arc<TagSet<T>> into build(), the leaked queue can retain blk-mq state after the tag set is dropped. Fix the pre-registration failure path by dropping the temporary gendisk reference with put_disk() before recovering queue_data, so disk_release() can tear down the owned queue. Also pair GenDisk::drop() with put_disk() after del_gendisk(). Once a Rust GenDisk has been added with device_add_disk(), del_gendisk() only unregisters it; the final gendisk reference still has to be dropped to complete the release path.
Title rust: block: fix GenDisk cleanup paths
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-07-25T08:52:02.486Z

Reserved: 2026-07-19T15:36:31.793Z

Link: CVE-2026-64509

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-07-25T10:17:37.030

Modified: 2026-07-25T10:17:37.030

Link: CVE-2026-64509

cve-icon Redhat

Severity :

Publid Date: 2026-07-25T00:00:00Z

Links: CVE-2026-64509 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-05T01:00:07Z

Weaknesses
  • CWE-772

    Missing Release of Resource after Effective Lifetime