All vulnerabilities
CVE-2026-99063

Linux: dm ioctl: don't let data_start run past the buffer

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in98195e822343a656b92e235847ab3e72b1a3f920Also 5680b6fb3054677d4ee65d3baba24b649f1b430e, 725b49c689bbb29ef740b0d6b5ea9390baa9a695 and 1 moreCVE List
Published23 Oct 2026Updated 23 Oct 2026CVE List

What fixes it

  • 98195e822343a656b92e235847ab3e72b1a3f920LinuxCVE List
  • 5680b6fb3054677d4ee65d3baba24b649f1b430eLinuxCVE List
  • 725b49c689bbb29ef740b0d6b5ea9390baa9a695LinuxCVE List
  • 9b3fcf519d370df94a56f3b272d9eddffffa5be8LinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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

dm ioctl: don't let data_start run past the buffer

struct dm_ioctl has seven bytes of trailing padding, so the smallest buffer userspace is allowed to ask for, offsetof(struct dm_ioctl, data), is seven bytes shorter than sizeof(struct dm_ioctl).

get_result_buffer() sets data_start to sizeof(struct dm_ioctl) without looking at how big the buffer actually is. Ask for the minimum and data_start ends up seven bytes past the end. Callers add it to data_size, and ctl_ioctl() copies that much back to userspace:

BUG: KASAN: slab-out-of-bounds in _copy_to_user+0xad/0xd0 Read of size 312 at addr ffff8880169e4c00 by task repro-dm/140 ctl_ioctl+0x5e3/0xcb0 dm_ctl_ioctl+0x25/0x40 allocated 305-byte region [ffff8880169e4c00, ffff8880169e4d31)

A DM_LIST_DEVICES with data_size set to 305 is enough to hit it, and the seven bytes that leak are whatever sat next to the allocation.

Clamp data_start to the buffer size.

Note that this is not a security bug because the out-of-bounds read can only be triggered by root.

Text from CVE List

Affected versions 12

  • Linuxaffected: 76c072b48e39e9291fbf02d6c912cf27d65e093d before 98195e822343a656b92e235847ab3e72b1a3f920CVE List
  • Linuxaffected: 76c072b48e39e9291fbf02d6c912cf27d65e093d before e5c3f3d8935ecc64c962fb66e6a86dbf79218f61CVE List
  • Linuxaffected: 76c072b48e39e9291fbf02d6c912cf27d65e093d before 5680b6fb3054677d4ee65d3baba24b649f1b430eCVE List
  • Linuxaffected: 76c072b48e39e9291fbf02d6c912cf27d65e093d before 725b49c689bbb29ef740b0d6b5ea9390baa9a695CVE List
  • Linuxaffected: 76c072b48e39e9291fbf02d6c912cf27d65e093d before 9b3fcf519d370df94a56f3b272d9eddffffa5be8CVE List
  • Linuxaffected: 2.6.25CVE List
  • Linuxunaffected: all versions before 2.6.25CVE List
  • Linuxunaffected: 6.6.160 through 6.6.*CVE List
  • Linuxunaffected: 6.12.113 through 6.12.*CVE List
  • Linuxunaffected: 6.18.57 through 6.18.*CVE List
  • Linuxunaffected: 7.2.11 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 5