CVE-2026-72470

Summary

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.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxb46acd6a6a627d876898e1c84d3f84902264b445 < 2097a2537d9d1c29c0e20ed0dbf717a0ccd8f374affected
LinuxLinuxb46acd6a6a627d876898e1c84d3f84902264b445 < f1422df595d69b997d23a8f11e12c528ccef7fadaffected
LinuxLinuxb46acd6a6a627d876898e1c84d3f84902264b445 < 4f129fc6f756f8541e5bff45b1804cc11b1ec712affected
LinuxLinuxb46acd6a6a627d876898e1c84d3f84902264b445 < c99444f6dfca893f6d310aae4a53c620f98f7b4faffected
LinuxLinuxb46acd6a6a627d876898e1c84d3f84902264b445 < 5a35454179fe1041d9cd286f5d320ce0d448c12aaffected
LinuxLinux5.15affected
LinuxLinux0 < 5.15unaffected
LinuxLinux6.6.145 <= 6.6.*unaffected
LinuxLinux6.12.97 <= 6.12.*unaffected
LinuxLinux6.18.40 <= 6.18.*unaffected
LinuxLinux7.1.5 <= 7.1.*unaffected
LinuxLinux7.2 <= *unaffected

Weaknesses

References