CVE-2026-53060
NoneCVSS
—
EPSS
0.1%
Published
Jun 24, 2026
CISA due date
—
Cloudanix analysis
A flaw in a Linux storage caching feature can let someone with powerful local access gradually consume system memory and potentially cause an outage.
- Exploitation
- Local Privilege
- Attacker needs
- High Privilege
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Denial of service
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
This is a Linux kernel device-mapper cache metadata memory leak in the dm-cache metadata abort path. When dm_cache_metadata_abort() fails to acquire root_lock because the block manager is read-only, a temporary block_manager allocated earlier is not released. Repeated abort/retry paths, such as dm-cache table reload/resume operations while cache metadata is read-only or failing, can leak small kernel allocations over time. The practical technical outcome is kernel memory exhaustion and denial of service, especially on systems using dm-cache with faulty, read-only, or erroring metadata devices. Exploitation appears to require local administrative capability to manipulate device-mapper tables or an equivalent privileged storage-management path; no public exploit maturity is indicated and EPSS is very low.
Why it matters to the business
Systems that use Linux dm-cache for storage acceleration can become unstable or unavailable if kernel memory is gradually leaked through repeated cache metadata abort operations. The most likely operational impact is degradation or outage of hosts, storage services, virtualization platforms, or appliances that depend on affected dm-cache configurations. Because the issue is not in CISA KEV, is not known to be used in ransomware, and has a low EPSS score, it should generally be prioritized behind remotely exploitable or actively exploited issues, but patched during normal kernel maintenance for any environment using dm-cache or exposing privileged storage automation.
How an attack unfolds
An attacker must first have local root privileges, CAP_SYS_ADMIN, or control over a privileged component that can issue device-mapper operations. They create or manipulate a dm-cache device so that its metadata path enters a read-only or failing state, then repeatedly suspend, reload, and resume the cache table or otherwise trigger concurrent metadata_operation_failed paths. During preresume, dm-cache attempts to abort metadata work, creates a temporary block manager, then fails in the read-only/root_lock path without freeing that allocation. Repeating the sequence leaks kernel memory. Over time, the system may experience memory pressure, degraded I/O behavior, process failures, or a host-level denial of service.
How to fix it
Upgrade to a Linux kernel version, distribution kernel package, or appliance firmware that includes the upstream dm-cache metadata fix for the abort retry memory leak. Because exact fixed package versions were not provided, use vendor advisories for the specific distribution or product and confirm the fix is included in the device-mapper cache metadata code. Where immediate patching is not possible, reduce exposure by limiting dmsetup and device-mapper administration to trusted administrators only, disabling unnecessary dm-cache deployments, avoiding automated table reload/resume workflows on unhealthy dm-cache devices, monitoring metadata device health, and isolating workloads that can influence privileged storage orchestration.
How to confirm the fix worked
Confirm the running kernel package contains the vendor fix for the dm-cache metadata abort retry leak. Inventory systems for dm-cache usage with device-mapper tools, such as dmsetup ls, dmsetup table, and dmsetup status, and prioritize hosts with active cache targets. After patching, reboot into the fixed kernel if required by the distribution. In test environments only, validate that repeated dm-cache suspend/reload/resume operations against read-only or failing metadata no longer produce kmemleak reports referencing dm_block_manager_create(), dm_cache_metadata_abort(), metadata_operation_failed(), or cache_preresume(). In production, validate indirectly by confirming the fixed kernel is active and monitoring for absence of recurring dm-cache metadata failures and unexplained kernel memory growth.
Typical attack path
- Obtain local administrative privileges or equivalent capability to manage Linux device-mapper targets.
- Identify or create a dm-cache device using separate metadata, cache data, and origin devices.
- Force dm-cache metadata into an erroring or read-only state, for example by using faulty metadata blocks or an error-backed metadata mapping.
- Trigger metadata activity by writing through the cache device.
- Reload the same or equivalent dm-cache table while metadata is in the problematic state.
- Suspend and resume the dm-cache device to drive the cache preresume and metadata abort path.
- Repeat the operation to leak kernel memory until service degradation or denial of service occurs.
How to detect it
To determine whether this was already triggered, review kernel logs, audit logs, command history, and storage-management automation logs for repeated dm-cache suspend, reload, and resume operations combined with cache metadata errors or read-only metadata state. Useful sources include journald, /var/log/kern.log, /var/log/messages, auditd execve records, sudo logs, shell histories for administrative users, EDR process telemetry, and any storage-orchestration logs that invoke dmsetup. Look for kmemleak reports or kernel traces containing dm_block_manager_create, dm_cache_metadata_abort, metadata_operation_failed, cache_preresume, and dm_table_resume_targets. Also investigate unexplained kernel memory growth on systems with active dm-cache targets, especially when correlated with repeated dmsetup activity. Because this is a memory leak rather than a code-execution vulnerability, there may be no durable file artifact; evidence is most likely in kernel diagnostics, process execution telemetry, and operational symptoms such as memory pressure or host instability.
- dm_cache_metadata_abort
- dm_block_manager_create
- metadata_operation_failed
- cache_preresume
- dm_table_resume_targets
- __dm_resume
- dm_resume
- unreferenced object
- comm "dmsetup"
- dmsetup reload cache
- dmsetup suspend cache
- dmsetup resume cache
- dmsetup create cache
- dmsetup create cmeta
- dmsetup create cdata
- dmsetup create corig
- /dev/mapper/cache
- /dev/mapper/cmeta
- /dev/mapper/cdata
- /dev/mapper/corig
- cache /dev/mapper/cmeta /dev/mapper/cdata /dev/mapper/corig
- kmemleak_alloc
What your security team should do
- Inventory Linux systems using device-mapper cache targets and prioritize those for kernel updates.
- Apply vendor kernel or appliance updates that include the dm-cache metadata memory leak fix, then reboot where required.
- Restrict dmsetup, CAP_SYS_ADMIN, and storage orchestration privileges to trusted administrators and hardened automation accounts.
- Monitor systems using dm-cache for metadata I/O errors, read-only metadata transitions, repeated suspend/resume/reload operations, and unexplained kernel memory growth.
- Review audit and shell history logs for unusual dmsetup reload, suspend, resume, or cache table manipulation by privileged users.
- If dm-cache is not required, consider disabling or replacing it to reduce storage-layer attack surface.
- Treat suspicious repeated device-mapper manipulation as potential local privilege misuse, even though this issue requires elevated access and is not known to be actively exploited.
The record
In the Linux kernel, the following vulnerability has been resolved: dm cache metadata: fix memory leak on metadata abort retry When failing to acquire the root_lock in dm_cache_metadata_abort because the block_manager is read-only, the temporary block_manager created outside the root_lock is not properly released, causing a memory leak. Reproduce steps: This can be reproduced by reloading a new table while the metadata is read-only. While the second call to dm_cache_metadata_abort is caused by lack of support for table preload in dm-cache, mentioned in commit 9b1cc9f251af ("dm cache: share cache-metadata object across inactive and active DM tables"), it exposes the memory leak in dm_cache_metadata_abort when the function is called multiple times. Specifically, dm-cache fails to sync the new cache object's mode during preresume, creating the reproducer condition. This issue could also occur through concurrent metadata_operation_failed calls due to races in cache mode updates, but the table preload scenario below provides a reliable reproducer. 1. Create a cache device with some faulty trailing metadata blocks dmsetup create cmeta <<EOF 0 200 linear /dev/sdc 0 200 7992 error EOF dmsetup create cdata --table "0 131072 linear /dev/sdc 8192" dmsetup create corig --table "0 262144 linear /dev/sdc 262144" dd if=/dev/zero of=/dev/mapper/cmeta bs=4k count=1 oflag=direct dmsetup create cache --table "0 131072 cache /dev/mapper/cmeta \ /dev/mapper/cdata /dev/mapper/corig 128 1 writethrough smq 0" 2. Suspend and resume the cache to start a new metadata transaction and trigger metadata io errors on the next metadata commit. dmsetup suspend cache dmsetup resume cache 3. Write to the cache device to update metadata fio --filename=/dev/mapper/cache --name test --rw=randwrite --bs=4k \ --randrepeat=0 --direct=1 --size 64k 4. Preload the same table dmsetup reload cache --table "$(dmsetup table cache)" 5. Resume the new table. This triggers the memory leak. dmsetup suspend cache dmsetup resume cache kmemleak logs: <snip> unreferenced object 0xffff8880080c2010 (size 16): comm "dmsetup", pid 132, jiffies 4294982580 hex dump (first 16 bytes): 00 38 b9 07 80 88 ff ff 6a 6b 6b 6b 6b 6b 6b a5 ... backtrace (crc 3118f31c): kmemleak_alloc+0x28/0x40 __kmalloc_cache_noprof+0x3d9/0x510 dm_block_manager_create+0x51/0x140 dm_cache_metadata_abort+0x85/0x320 metadata_operation_failed+0x103/0x1e0 cache_preresume+0xacd/0xe70 dm_table_resume_targets+0xd3/0x320 __dm_resume+0x1b/0xf0 dm_resume+0x127/0x170 <snip>
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|