Bug 2532210 (CVE-2026-89573) - CVE-2026-89573 kernel: Linux kernel: dm array memory corruption from crafted metadata
Summary: CVE-2026-89573 kernel: Linux kernel: dm array memory corruption from crafted ...
Keywords:
Status: NEW
Alias: CVE-2026-89573
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-09-11 21:23 UTC by OSIDB Bzimport
Modified: 2026-09-11 21:48 UTC (History)
15 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-09-11 21:23:43 UTC
In the Linux kernel, the following vulnerability has been resolved:

dm array: reject an array block whose value size is not the caller's

array_block_check() can only compare the header against itself, so a block
with value_size 4 and max_entries 1018 is internally consistent and passes.
dm-cache keeps two arrays -- mappings at 8 bytes and hints at 4 -- and the
roots for both live in the superblock. Point the mappings root at a hint
block and __load_mappings() walks it through an info whose value size is 8,
so element_at() strides 8 bytes over 4-byte entries and reaches offset 8160
of a 4096-byte block.

get_ablock() and __shadow_ablock() are the two places that hold the block
and the caller at once. Reject there when the two value sizes disagree.
Arrays only ever read their own blocks, so this fires on crafted metadata
only.


Note You need to log in before you can comment on or make changes to this bug.