CVE-2026-72470

fs/ntfs3: resize log->one_page_buf when adopting on-disk page size

State
Published
Severity
7.8 High
Published
Aug 15, 2026
Updated
Oct 30, 2026
Reserved
Aug 9, 2026

Read the record on cve.org

Description

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

fs/ntfs3: resize log->one_page_buf when adopting on-disk page size

log_replay() allocates log->one_page_buf using the page size that was chosen from the host PAGE_SIZE:

log->one_page_buf = kmalloc(log->page_size, GFP_NOFS);

Later, when a restart area is found, the log page size recorded on disk is adopted:

t32 = le32_to_cpu(log->rst_info.r_page->sys_page_size); if (log->page_size != t32) { log->l_size = log->orig_file_size; log->page_size = norm_file_page(t32, &log->l_size, t32 == DefaultLogPageSize); }

If the on-disk page size is larger than the size used for the initial allocation, log->page_size grows but one_page_buf is left at its original, smaller size. A subsequent unaligned read_log_page() then reads log->page_size bytes into the undersized scratch buffer:

page_buf = page_off ? log->one_page_buf : *buffer; err = ntfs_read_run_nb_ra(ni->mi.sbi, &ni->file.run, page_vbo, page_buf, log->page_size, NULL, &log->read_ahead);

overflowing the allocation. This is reachable when mounting a dirty NTFS volume whose log was formatted with a page size larger than the buffer initially allocated on the mounting host (for example a 64K-log volume mounted on a host that allocated a 4K scratch buffer).

Grow one_page_buf when the adopted on-disk page size exceeds the size used for the initial allocation. On krealloc() failure the original buffer is left intact and freed by the existing error path.

Scores

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

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before 220a6ef5e89a11ffd5e490046b86dc9fb6da0e4bAffected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before 2097a2537d9d1c29c0e20ed0dbf717a0ccd8f374Affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before f1422df595d69b997d23a8f11e12c528ccef7fadAffected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before 4f129fc6f756f8541e5bff45b1804cc11b1ec712Affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before c99444f6dfca893f6d310aae4a53c620f98f7b4fAffected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before 5a35454179fe1041d9cd286f5d320ce0d448c12aAffected
LinuxLinux
  • 5.15Affected
  • before 5.15Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.145 through 6.6.*Not affected
  • 6.12.97 through 6.12.*Not affected
  • 6.18.40 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 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.