CVE-2026-72470: fs/ntfs3: resize log->one_page_buf when adopting on-disk page size
In the Linux kernel, the following vulnerability has been resolved:
fs/ntfs3: resize log->onepagebuf when adopting on-disk page size
logreplay() allocates log->onepagebuf using the page size that was chosen from the host PAGESIZE:
log->onepagebuf = kmalloc(log->pagesize, GFPNOFS);
Later, when a restart area is found, the log page size recorded on disk is adopted:
t32 = le32tocpu(log->rstinfo.rpage->syspagesize); if (log->pagesize != t32) { log->lsize = log->origfilesize; log->pagesize = normfilepage(t32, &log->lsize, t32 == DefaultLogPageSize); }
If the on-disk page size is larger than the size used for the initial allocation, log->pagesize grows but onepagebuf is left at its original, smaller size. A subsequent unaligned readlogpage() then reads log->pagesize bytes into the undersized scratch buffer:
pagebuf = pageoff ? log->onepagebuf : buffer; err = ntfsreadrunnbra(ni->mi.sbi, &ni->file.run, pagevbo, pagebuf, log->pagesize, NULL, &log->readahead);
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 onepagebuf 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.