data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-89584 in the interactive tracker

CVE-2026-89584

block: validate user space vectors during extraction

7.8 EPSS 0.2% AV:L

Published 2026-09-11 (37 days ago) by the Linux kernel CNA. Subsystem block. Debian urgency: unimportant.

What to do, per Debian release

Debian's own status for CVE-2026-89584 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source

ReleaseStatus VersionWhat this means
Debian 12bookwormnot affected6.1.190-1Nothing to do. bookworm never shipped the vulnerable code.
Debian 13trixienot affected6.12.113-1Nothing to do. trixie never shipped the vulnerable code.
Debian 14forkyfixed7.2.6-1Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.2.6-1Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

The bio-based drivers don't necessarily check the alignment split, and stacking block drivers don't always handle a misalignment detected after submitting the bio. Validate user vectors against the device's dma_alignment as the bio is built from the iov_iter, rejecting misaligned early with -EINVAL.

Where it lives

The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.

block/bio.c
block/blk-map.c
block/fops.c
fs/iomap/direct-io.c
include/linux/bio.h
include/linux/uio.h
lib/iov_iter.c

What this is
BLOCK LAYERMAINTAINERS section matched on block/ · linux-block@vger.kernel.org · Maintained
Show whether Debian builds this, per release

Debian builds this code. Every release below compiles the affected file into the kernels it ships.

  • bookworm, trixie, forky, sidy
y
built into the kernel image on every flavour - only a patch removes it

From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS Debian linux-config packages

Signals

Published
2026-09-11 (37 days ago)source
CVSS
7.8 high
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:Hsource recompute it
Attack vector
local (AV:L)source
EPSS
0.17%, higher than 5.4% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
unimportantsource
Subsystem
block

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
6.187.2.4d44a97a3b1c0
6.187.314b007e17881

Why the CNA scored it this way

Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source

AV:LAttack vector, local
Missing dma_alignment validation is in bio_iov_iter_get_pages()/iov_iter_extract_bvecs(), reached only via local O_DIRECT (preadv/pwritev/io_uring) through blkdev_direct_IO() and iomap_dio_bio_iter_one() on ext4/XFS/btrfs/f2fs or raw block devices; ksmbd/nfsd do not feed attacker-controlled user iovecs into this path.
AC:LAttack complexity, low
After the simplified DIO checks, only file offset and total length must be logical-block aligned; the attacker fully controls each iovec address and length and can submit misaligned buffers or io_uring registered buffers deterministically, with no race or attacker-uncontrolled layout required.
PR:LPrivileges required, low
Any unprivileged user with read or write access to a regular file on an iomap DIO filesystem, or to a block device they can open, can issue O_DIRECT with no capability; stacked dm/md/LUKS setups are a deployment precondition, not a privilege the attacker must obtain.
UI:NUser interaction, none
The attacker opens their own file or device and issues the misaligned O_DIRECT I/O themselves; no separate victim must mount media, confirm a prompt, or otherwise participate.
S:UScope, unchanged
Impact stays inside the host kernel block layer and stacked devices (invalid DMA, driver mishandling, array denial of service) and does not cross a VM, hypervisor, IOMMU, or sandbox boundary.
C:HConfidentiality impact, high
Bio-based drivers (dm, md) skip __bio_split_to_limits() on normal I/O, so attacker-controlled bvec offsets reach DMA and crypto SG lists such as dm-crypt sg_set_page(). Unaligned or page-crossing DMA, including non-coherent cache-line effects and hardware address rounding, can read adjacent memory.
I:HIntegrity impact, high
The same unvalidated user vectors are programmed into device DMA and driver scatterlists; misaligned writes, hardware address masking, and cache-line tearing on non-coherent DMA can corrupt adjacent memory or neighboring disk blocks, and drivers that assume aligned bvecs can perform out-of-bounds writes.
A:HAvailability impact, high
Misaligned bios are known to degrade md/raid1 and dm-mirror arrays when lower devices return BLK_STS_INVAL, hang dm-io on byte-granular fragments, and can oops or hang bio-based drivers and DMA engines that reject unaligned segments, all kernel-level availability failures.