CVE-2026-53126: Linux Kernel Block I/O Cgroup Disk Reference Leak
A memory leak exists in the Linux kernel's block I/O (blk-cgroup) subsystem. When certain disk throttling operations fail internally, the kernel forgets to release a reference to the disk device, preventing it from being properly freed from memory. This causes a resource leak that accumulates over time as the system handles throttling requests, potentially leading to memory exhaustion or system instability. The bug was introduced when the kernel code was refactored to use a different internal data structure.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- —
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-07-23
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: blk-cgroup: fix disk reference leak in blkcg_maybe_throttle_current() Add the missing put_disk() on the error path in blkcg_maybe_throttle_current(). When blkcg lookup, blkg lookup, or blkg_tryget() fails, the function jumps to the out label which only calls rcu_read_unlock() but does not release the disk reference acquired by blkcg_schedule_throttle() via get_device(). Since current->throttle_disk is already set to NULL before the lookup, blkcg_exit() cannot release this reference either, causing the disk to never be freed. Restore the reference release that was present as blk_put_queue() in the original code but was inadvertently dropped during the conversion from request_queue to gendisk.
5 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-53126 is a resource leak vulnerability in the blkcg_maybe_throttle_current() function within the Linux kernel's block cgroup subsystem. The function acquires a disk reference via get_device() during blkcg_schedule_throttle() but fails to release it when any of three error conditions occur: blkcg lookup failure, blkg lookup failure, or blkg_tryget() failure. When these conditions are met, execution jumps to the error path (out label) which only calls rcu_read_unlock() but omits the corresponding put_disk() call. Since current->throttle_disk is cleared before the failed lookup attempts, the blkcg_exit() cleanup path cannot recover the leaked reference either. This issue is a regression from an earlier refactor that converted internal structures from request_queue to gendisk.
Business impact
While local in nature, this vulnerability poses a gradual degradation risk to system stability. Long-running systems or workloads that frequently trigger blkg lookups or blkg_tryget() failures will accumulate orphaned disk references, consuming kernel memory. Over time, this can lead to denial of service through memory exhaustion, affecting services dependent on stable kernel memory availability. Systems with heavy I/O throttling policies or cgroup management are most susceptible to accelerated resource depletion.
Affected systems
This vulnerability affects the Linux kernel. The specific version range is not detailed in the advisory; however, it represents a regression introduced during a refactor that migrated from request_queue to gendisk internal structures. Systems running vulnerable kernel versions with active I/O cgroup throttling policies or dynamic cgroup management are at risk. Verify your kernel version against the vendor advisory and patch releases.
Exploitability
Exploitation requires local access and the ability to trigger the error path in blkcg_maybe_throttle_current(). This is not a remotely exploitable vulnerability. An attacker with local user privileges could potentially accelerate memory exhaustion by crafting workloads that repeatedly trigger blkg lookup failures or blkg_tryget() race conditions, but the primary risk is unintended resource depletion through normal system operation under specific I/O throttling conditions. No known public exploits exist.
Remediation
Apply a kernel patch that restores the missing put_disk() call on the error path in blkcg_maybe_throttle_current(). This is typically a single-line or minimal change to add the reference release before the rcu_read_unlock() at the out label. Check your Linux distribution's security advisory and kernel repository for the patched version applicable to your kernel branch (stable, LTS, or distribution-specific).
Patch guidance
Obtain the patched kernel version from your Linux distribution's official repository or from kernel.org. The fix is a straightforward addition of put_disk() to the error handling path and should be included in subsequent stable kernel releases following the vulnerability disclosure. Test the patched kernel in a non-production environment first to ensure compatibility with your I/O workload. Systems with intensive cgroup-based throttling policies should prioritize patching due to higher risk of hitting the error path.
Detection guidance
Monitor kernel memory usage patterns, particularly slab allocator metrics for disk_struct or device references. Tools like /proc/slabinfo can reveal unexpected growth in disk-related allocations. Correlate memory growth with I/O throttling activity and cgroup lookup operations using kernel tracing tools (trace-cmd, perf). Log analysis of workloads that manipulate cgroups or trigger blkg operations may indicate potential triggering scenarios. A patched kernel validation script should confirm the presence of put_disk() in the blkcg error path.
Why prioritize this
Despite a CVSS score of 5.5 (Medium), this vulnerability should not be deprioritized. Its local-only requirement and lack of public exploit activity might suggest lower urgency, but the resource leak nature makes it a slow-burn stability risk. Production systems with long uptimes and active I/O cgroup management should prioritize patching to avoid cumulative memory exhaustion. The fix is typically low-risk and small, making it a good candidate for expedited patching cycles even if not immediately critical.
Risk score, explained
The CVSS 3.1 score of 5.5 reflects the local attack vector (AV:L), low complexity (AC:L), requirement for local privileges (PR:L), and high availability impact (A:H) with no confidentiality or integrity impact. This scoring correctly identifies the vulnerability as a local denial-of-service vector. However, the practical impact may be underestimated for systems with heavy I/O workloads, where memory exhaustion could occur more rapidly than the scoring suggests.
Frequently asked questions
Can this vulnerability be exploited remotely?
No. CVE-2026-53126 requires local access to the system and the ability to trigger specific error conditions in the kernel's I/O cgroup code. Remote exploitation is not possible.
What happens if the patch is not applied?
The kernel will continue to leak disk references whenever blkcg lookups or blkg operations fail under specific conditions. Over time, this accumulates memory pressure. Systems under heavy I/O load or with frequent cgroup management operations will experience faster resource depletion, eventually leading to memory exhaustion and potential system crashes.
Which systems are most at risk?
Long-running production servers with active I/O throttling policies, containerized environments with dynamic cgroup management, and systems handling high-frequency I/O operations are at elevated risk. Systems with minimal cgroup usage have lower exposure but should still be patched for completeness.
Is there a workaround if I cannot patch immediately?
There is no practical workaround. Reducing I/O throttling policy complexity or cgroup churn may lower the rate of reference leakage, but does not eliminate the vulnerability. Patching the kernel is the only definitive remediation.
This analysis is based on published vulnerability data as of the stated modification date. Version numbers, patch availability, and specific affected kernel releases should be verified against official Linux kernel security advisories and your distribution's security updates. The CVSS score and severity classification are as provided by the source data. No exploit code or weaponized proof-of-concept is included in this guidance. Organizations should validate patch applicability and conduct testing before deployment in production environments. Source: NVD (public-domain), retrieved 2026-08-02. Analysis generated by SEC.co (claude-haiku-4-5).
Affected vendors
Related vulnerabilities
- CVE-2025-71313MEDIUMLinux Kernel PCI Endpoint NULL Pointer Dereference
- CVE-2025-71314MEDIUMLinux Panthor GPU Driver Denial of Service via Cache Flush Timeout
- CVE-2025-71315MEDIUMLinux Kernel vkms DRM Vblank Timer Denial of Service
- CVE-2026-0268MEDIUMPrisma Access Agent Linux VPN Bypass Vulnerability
- CVE-2026-10004MEDIUMChrome UI Spoofing Vulnerability – Password Dialog Hijacking
- CVE-2026-10018MEDIUMInteger Overflow in Chrome ANGLE GPU Graphics Layer
- CVE-2026-10912MEDIUMChrome Extension Same-Origin Policy Bypass (CVSS 6.5)
- CVE-2026-10916MEDIUMChrome DevTools UXSS Vulnerability