CVE-2026-64431CWE-787

CVE-2026-64431

High · published July 25, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
5.4
In the wild
Unconfirmed
What it is

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

ntfs: avoid calling post_write_mst_fixup() for invalid index_block

ntfs_icx_ib_sync_write() calls post_write_mst_fixup() when ntfs_ib_write()

returns an error, intending to restore the buffer after a failed write.

However, ntfs_ib_write() returns an error immediately if

pre_write_mst_fixup() validation fails. The caller,

ntfs_icx_ib_sync_write(), interprets any error as a write failure

requiring rollback. It does not differentiate between I/O errors and

validation failures, and calls post_write_mst_fixup() anyway.

Since post_write_mst_fixup() assumes that the index_block contents is

correct, it doesn't perform the boundary checks, which results in

out-of-bounds memory access.

An attacker can craft a malicious NTFS image with:

- large index_block.usa_ofs offset, pointing outside the ntfs_record

- index_block.usa_count = 0, causing integer underflow

- or index_block.usa_count larger than actual number of sectors in the

ntfs_record, causing out-of-bounds access

KASAN reports describing the memory corruption:

==================================================================

BUG: KASAN: slab-out-of-bounds in post_write_mst_fixup+0x19c/0x1d0

Read of size 2 at addr ffff8881586c9018 by task p/9428

Call Trace:

<TASK>

dump_stack_lvl+0x100/0x190

print_report+0x139/0x4ad

? post_write_mst_fixup+0x19c/0x1d0

? __virt_addr_valid+0x262/0x500

? post_write_mst_fixup+0x19c/0x1d0

kasan_report+0xe4/0x1d0

? post_write_mst_fixup+0x19c/0x1d0

post_write_mst_fixup+0x19c/0x1d0

ntfs_icx_ib_sync_write+0x179/0x220

ntfs_inode_sync_filename+0x83d/0x1080

__ntfs_write_inode+0x1049/0x1480

ntfs_file_fsync+0x131/0x9b0

==================================================================

BUG: KASAN: slab-out-of-bounds in post_write_mst_fixup+0x1aa/0x1d0

Write of size 2 at addr ffff8881586c91fe by task p/9428

Call Trace:

<TASK>

dump_stack_lvl+0x100/0x190

print_report+0x139/0x4ad

? post_write_mst_fixup+0x1aa/0x1d0

? __virt_addr_valid+0x262/0x500

? post_write_mst_fixup+0x1aa/0x1d0

kasan_report+0xe4/0x1d0

? post_write_mst_fixup+0x1aa/0x1d0

post_write_mst_fixup+0x1aa/0x1d0

ntfs_icx_ib_sync_write+0x179/0x220

ntfs_inode_sync_filename+0x83d/0x1080

__ntfs_write_inode+0x1049/0x1480

ntfs_file_fsync+0x131/0x9b0

==================================================================

Let's move the post_write_mst_fixup() call to ntfs_ib_write().

The ntfs_ib_write() function calls pre_write_mst_fixup() at the beginning.

If the index_block contents is invalid, pre_write_mst_fixup() fails and

ntfs_ib_write() returns early without calling post_write_mst_fixup() on

bad index_block.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00165 · 5.4th percentile
Weakness
CWE-787 · Out-of-bounds Write
Published
2026-07-25T14:17Z
Affected products (3)
ProductVersionsFixed in
linux/linux_kernel≥ 7.1, < 7.1.47.1.4
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (2)
EPSS history
Timeline
  • 25 JUL 08:51Z
    ntfs: avoid calling post_write_mst_fixup() for invalid index_block
    cvelistv5