KernelScan.io

HIGH Introduced in 5.15

ntfs3 DirtyPageTable OOB

CVE-2026-89617

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI6.7MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: validate dirty page table on log replay Each DIR_PAGE_ENTRY ends in a page_lcns[] array whose length is the on-disk lcns_follow field. check_rstbl() validates the table bookkeeping but never checks that this array fits in the entry, so a crafted lcns_follow lets the v0->v1 conversion memmove and later replay passes run off the entry. Add check_dp_table() to reject, right after check_rstbl(), any entry larger than its size claims via struct_size() (the same expression used to allocate these entries, so the check is overflow-safe by construction). All consumers can then trust lcns_follow as the real capacity. This covers every page_lcns[] access whose index is bounded by the entry itself (the conversion memmove, the HotFix store via find_dp(), and the self-bounded scan loops). Accesses whose index comes from the log record need a separate bound and are handled in a follow-up patch.

02

Engine v0.6.0

Risk summary

A crafted NTFS filesystem image can trigger out-of-bounds memory access during journal log replay, corrupting kernel heap memory. Exploitation requires mounting the malicious image, which needs real administrator privileges. Devices that accept removable NTFS-formatted media or allow administrators to mount arbitrary images are at risk.

Affectedfs/ntfs3/fslog.c (ntfs3 journal log replay)

Vulnerability analysis

The NTFS3 driver reads an on-disk length field during journal replay that controls how many cluster numbers follow each dirty-page record, but never checks that the declared array actually fits inside the record. A crafted filesystem can inflate this length, causing the replay code to copy data past the end of the record into adjacent kernel heap memory. The fix adds validation that rejects any record whose declared array would exceed its actual allocated size, before the replay logic processes it. The bug is reachable only when mounting a crafted NTFS filesystem image, which requires real administrator privileges in the initial namespace — unprivileged users cannot mount NTFS volumes.

03

BranchIntroducedFixed inPatch commit
mainline5.157.3-rc1006cb7713dec
6.125.156.12.1091200c2779c43
5.155.155.15.2210e07ea2fc45a
6.15.156.1.1881e90b1703ee1
6.185.156.18.502d94ffc9d7b5
7.25.157.2.40908da07c23b
6.65.156.6.157d23155634a4b
cip/6.125.156.12.111-cip321200c2779c43