In the Linux kernel, the following vulnerability has been resolved: dm array: reject an array block whose value size is not the caller's… (CVE-2026-89573)
A vulnerability in the Linux kernel's device mapper (dm) array code has been resolved. The flaw involves improper validation of array blocks when the value size does not match the caller's expected size, potentially allowing crafted metadata to bypass consistency checks. This occurs because array_block_check() only compares headers against themselves, allowing internally inconsistent blocks to pass. The issue affects the handling of dm-cache arrays with differing value sizes for mappings and hints, leading to out-of-bounds memory access during mapping loading.
AI Analysis
Technical Summary
The Linux kernel device mapper's array code had a vulnerability where array_block_check() did not properly validate that the value size of an array block matched the caller's expected value size. This allowed a block with a mismatched value size to appear internally consistent and pass checks. Specifically, dm-cache maintains two arrays with different value sizes (8 bytes for mappings and 4 bytes for hints), and the roots for both reside in the superblock. If the mappings root points to a hint block, __load_mappings() incorrectly strides over 4-byte entries as if they were 8 bytes, causing out-of-bounds access. The fix involves rejecting blocks when the value sizes disagree in get_ablock() and __shadow_ablock(), preventing crafted metadata from being accepted.
Potential Impact
The vulnerability could allow crafted metadata to bypass internal consistency checks in the device mapper's array handling, potentially leading to out-of-bounds memory access during dm-cache mapping loading. This could cause memory corruption or instability in the kernel's device mapper subsystem. However, exploitation requires crafted metadata and the arrays only read their own blocks, limiting the scope of impact.
Mitigation Recommendations
A fix has been implemented in the Linux kernel to reject array blocks when the value size does not match the caller's expected size in get_ablock() and __shadow_ablock(). Users should apply the official kernel updates that include this fix. No additional mitigation is indicated beyond applying the patch.
In the Linux kernel, the following vulnerability has been resolved: dm array: reject an array block whose value size is not the caller's… (CVE-2026-89573)
Description
A vulnerability in the Linux kernel's device mapper (dm) array code has been resolved. The flaw involves improper validation of array blocks when the value size does not match the caller's expected size, potentially allowing crafted metadata to bypass consistency checks. This occurs because array_block_check() only compares headers against themselves, allowing internally inconsistent blocks to pass. The issue affects the handling of dm-cache arrays with differing value sizes for mappings and hints, leading to out-of-bounds memory access during mapping loading.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The Linux kernel device mapper's array code had a vulnerability where array_block_check() did not properly validate that the value size of an array block matched the caller's expected value size. This allowed a block with a mismatched value size to appear internally consistent and pass checks. Specifically, dm-cache maintains two arrays with different value sizes (8 bytes for mappings and 4 bytes for hints), and the roots for both reside in the superblock. If the mappings root points to a hint block, __load_mappings() incorrectly strides over 4-byte entries as if they were 8 bytes, causing out-of-bounds access. The fix involves rejecting blocks when the value sizes disagree in get_ablock() and __shadow_ablock(), preventing crafted metadata from being accepted.
Potential Impact
The vulnerability could allow crafted metadata to bypass internal consistency checks in the device mapper's array handling, potentially leading to out-of-bounds memory access during dm-cache mapping loading. This could cause memory corruption or instability in the kernel's device mapper subsystem. However, exploitation requires crafted metadata and the arrays only read their own blocks, limiting the scope of impact.
Mitigation Recommendations
A fix has been implemented in the Linux kernel to reject array blocks when the value size does not match the caller's expected size in get_ablock() and __shadow_ablock(). Users should apply the official kernel updates that include this fix. No additional mitigation is indicated beyond applying the patch.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-pg3h-8qxx-35hj
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-89573"]
Threat ID: 6aa4a00e55bf5e2cf5a86699
Added to database: 09/12/2026, 00:42:54 UTC
Last enriched: 09/12/2026, 01:05:23 UTC
Last updated: 09/12/2026, 01:05:23 UTC
Views: 2
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.