CVE-2026-89781

fs/ntfs3: fix out-of-bounds read in read_log_rec_buf()

State
Published
Severity
8.4 High
Published
Sep 16, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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

fs/ntfs3: fix out-of-bounds read in read_log_rec_buf()

read_log_rec_buf() copies a log record into a caller buffer starting at

u32 off = lsn_to_page_off(log, lsn) + log->record_header_len;

log->record_header_len (and log->data_off, used for the following pages) comes verbatim from the on-disk restart area and is only checked for 8-byte alignment in is_rst_area_valid(), so off can exceed log->page_size. "tail = log->page_size - off" then underflows and memcpy() reads past the page_size-sized buffer returned by read_log_page(), spilling adjacent slab memory into the replay buffer.

This is reachable by mounting a crafted NTFS image:

BUG: KASAN: slab-out-of-bounds in read_log_rec_buf+0x216/0x580 Read of size 64 at addr ffff88800a877ff8 by task exploit/127 read_log_rec_buf fs/ntfs3/fslog.c:2299 log_replay fs/ntfs3/fslog.c:4216 ntfs_loadlog_and_replay fs/ntfs3/fsntfs.c:324 ntfs_fill_super fs/ntfs3/super.c:1392 get_tree_bdev_flags fs/super.c:1694 __x64_sys_mount fs/namespace.c:4360 The buggy address is located 4088 bytes to the right of the 4096-byte region [ffff88800a876000, ffff88800a877000)

Reject an in-page offset outside the current page before the copy.

[almaz.alexandrovich@paragon-software.com: replaced the >= sign with >]

Scores

CVSSScoreVectorSource
3.18.4 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before df099bfdb57773ba7f40f8a9dcc82e75af277922Affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before 1b2d31f1083beb80c55d1152249f652c1445a559Affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before 700973cc65db405bde0368ccf88699390150943eAffected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before 49f7cbc902b08b56eb7d2633163ecc57a0e7145aAffected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before 74a83aa05f73033af719771ab1f0c269928b4865Affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before 53e56f7aa1d0f950a8bc2e4cdb3ba9fe45967531Affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before de603b9d377fab57a5e6432fa84a9f36b32c1636Affected
LinuxLinux
  • 5.15Affected
  • before 5.15Not affected
  • 5.15.221 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.110 through 6.12.*Not affected
  • 6.18.52 through 6.18.*Not affected
  • 7.2.6 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.