In the Linux kernel, the following vulnerability has been resolved:
fs/ntfs3: validate lcnsfollow in logreplay conversion
logreplay() converts DIRPAGEENTRY32 records into DIRPAGEENTRY records when replaying version 0 restart tables.
During this conversion, the memmove() length is derived directly from the on-disk lcns_follow field:
memmove(&dp->vcn, &dp0->vcn_low,
2 * sizeof(u64) +
le32_to_cpu(dp->lcns_follow) * sizeof(u64));
checkrstbl() validates restart table structure, but does not constrain per-entry lcnsfollow values relative to the entry size. A malformed filesystem image can provide an oversized lcns_follow value, causing the conversion memmove() to access memory beyond the bounds of the allocated restart table buffer.
The same field is later used to bound iteration over pagelcns[], so validating lcnsfollow during conversion also prevents downstream out-of-bounds access from the same malformed metadata.
Compute the maximum valid lcnsfollow from the already-validated restart table entry size and reject entries that exceed this bound. Reuse the existing t16/t32 scratch variables already declared in logreplay() to avoid introducing new declarations.
[almaz.alexandrovich@paragon-software.com: fixed the conflicts]
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64533.json",
"cna_assigner": "Linux"
}