CVE-2026-89574

dm array: validate array block headers on read

State
Published
Severity
7.8 High
Published
Sep 11, 2026
Updated
Oct 30, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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

dm array: validate array block headers on read

array_block_check() validates blocknr and csum and nothing else, while node_check(), next to it, has bounded the structural fields since both were written. dm_array_cursor_next() takes its loop bound from the on-disk nr_entries and element_at() is unguarded pointer arithmetic, so a count larger than the block holds keeps the cursor in one block while the index grows past it and the read walks off the dm-bufio buffer -- dm_cache_load_mappings() drives it once per cache block at activation.

Check the header against itself: reject a zero value_size, require max_entries to equal calc_max_entries() for that value_size and block size, and require nr_entries to fit. Equality rather than an upper bound, since a count below the real capacity trips BUG_ON() in fill_ablock() and trim_ablock(). Metadata dm-array writes satisfies all three.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 6513c29f44f2cc970c0e9fecfe5a6526c3e73025 to before e09d8b34ed199c8b7d7528c2b8324aa7cff712f8Affected
  • 6513c29f44f2cc970c0e9fecfe5a6526c3e73025 to before 0e3b8f371c385c212b6e6f76c66f5b3f5bcfea62Affected
  • 6513c29f44f2cc970c0e9fecfe5a6526c3e73025 to before 67adda7ed5da3e3b64f5b9021a02c21fb374fd9cAffected
  • 6513c29f44f2cc970c0e9fecfe5a6526c3e73025 to before b33f76d33aaeacf3baf3370d8d64985169b36600Affected
  • 6513c29f44f2cc970c0e9fecfe5a6526c3e73025 to before 9808ddffb4bc659352df3020cd84d9d864820ee5Affected
  • 6513c29f44f2cc970c0e9fecfe5a6526c3e73025 to before 2965787723084835b18dfe993cd450ebf5bd4540Affected
LinuxLinux
  • 3.9Affected
  • before 3.9Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.109 through 6.12.*Not affected
  • 6.18.50 through 6.18.*Not affected
  • 7.2.4 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.