Skip to main content
VulnerabilityPublished Updated

CVE-2026-89574: Linux kernel · dm array: validate array block headers on read

Affects Linux kernelSource CVE Database V5

0

Not known to be exploited · CVSS 7.8 High · fixed in b33f76d33aaeacf3baf3370d8d64985169b36600 : patch Linux kernel soon.

Data as of 26 Oct 2026, 12:55 UTC

CVSS 3.1 base score
7.8High
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.1% chance of exploitation in 30 days – higher than 6% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
CISA SSVC
Exploitation
No evidence of active exploitation and no public proof of concept
Automatable
Attackers cannot reliably automate steps 1–4 of the kill chain
Technical impact
Total control over the software or total information disclosure

CISA SSVC assessment, 2026-10-16.

Patch
Available – fixed in b33f76d33aaeacf3baf3370d8d64985169b36600, 2965787723084835b18dfe993cd450ebf5bd4540, 9808ddffb4bc659352df3020cd84d9d864820ee5 +2
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 11 Sep 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponised: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.

What to do

Upgrade to a fixed release listed under Affected software.

Affected software

ProductAffectedFixed in
LinuxLinuxAffected
  • ≥ 6513c29f44f2cc970c0e9fecfe5a6526c3e73025, < b33f76d33aaeacf3baf3370d8d64985169b36600
Fixed in
  • b33f76d33aaeacf3baf3370d8d64985169b36600
LinuxLinuxAffected
  • ≥ 6513c29f44f2cc970c0e9fecfe5a6526c3e73025, < 2965787723084835b18dfe993cd450ebf5bd4540
Fixed in
  • 2965787723084835b18dfe993cd450ebf5bd4540
LinuxLinuxAffected
  • ≥ 6513c29f44f2cc970c0e9fecfe5a6526c3e73025, < 9808ddffb4bc659352df3020cd84d9d864820ee5
Fixed in
  • 9808ddffb4bc659352df3020cd84d9d864820ee5
LinuxLinuxAffected
  • ≥ 6513c29f44f2cc970c0e9fecfe5a6526c3e73025, < 67adda7ed5da3e3b64f5b9021a02c21fb374fd9c
Fixed in
  • 67adda7ed5da3e3b64f5b9021a02c21fb374fd9c
LinuxLinuxAffected
  • ≥ 6513c29f44f2cc970c0e9fecfe5a6526c3e73025, < 0e3b8f371c385c212b6e6f76c66f5b3f5bcfea62
Fixed in
  • 0e3b8f371c385c212b6e6f76c66f5b3f5bcfea62
LinuxLinuxAffected
  • =3.9
Fixed in–

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.

References

Community reviews

Loading reviews…