Description
In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: add bounds check to run_get_highest_vcn() run_get_highest_vcn() parses a packed NTFS mapping-pairs buffer without any length bound, relying solely on a 0x00 terminator to stop. A crafted $LogFile UpdateMappingPairs record whose embedded attribute contains mapping-pairs runs without a terminator causes the function to read past the slab allocation, triggering a KASAN slab-out-of-bounds read on mount. The sibling function run_unpack() received an analogous bounds-check in commit b62567bca474 ("ntfs3: add buffer boundary checks to run_unpack()"), but run_get_highest_vcn() was missed. Take a run_buf_size parameter and reject any run header whose payload would extend past the buffer end, mirroring the pattern used by run_unpack(). The caller in fslog.c passes the remaining attribute bytes after the mapping-pairs offset. KASAN report (on mainline v7.1 merge window HEAD): BUG: KASAN: slab-out-of-bounds in run_get_highest_vcn+0x3c0/0x410 Read of size 1 at addr ffff88800e2d5400 by task mount/72 Call Trace: run_get_highest_vcn+0x3c0/0x410 do_action.isra.0+0x3ba8/0x7b50 log_replay+0x9ddd/0x10200 ntfs_loadlog_and_replay+0x4ad/0x610 ntfs_fill_super+0x214a/0x4540
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
425de2aba0d061b3e715d51a3b1992c112ed5b99 to < c69b9003332917b652175d5fa9d84158c5ed8617affectedbf7ac4a1d3bfc6e56e54635c3d331a68170d37c9 to < 8afc24a884aff6a6f08028bd779ee65c40054455affectede64f7dfcaff79e7dfff9121a382dd77f9b462f62 to < c23083b472a720c3f60b147db05b25b751c7c1bfaffectedd3012690a7065d9ca86521a525ad11e8af491d45 to < a31893206588374d7d16fad387189d8165c7efd3affectedb62567bca47408e6739dee75f02a2113548af875 to < 41081202eb823f5b27ff164b12010b24428100adaffectedb62567bca47408e6739dee75f02a2113548af875 to < bb11485a87fbb2254b62cfed630b699d50e57da8affectedbbad75336870b51b81979b97613746237fcb02feaffected41aadf5cb482793a24e05aa136224e179a778586affected6.1.175 to < 6.1.178affected6.6.140 to < 6.6.145affected6.12.86 to < 6.12.97affected6.18.27 to < 6.18.40affected5.15.209 to < 5.16affected7.0.4 to < 7.1affected
Linux Linux
Default version status: affected
7.1affected0 to < 7.1unaffected6.1.178 to ≤ 6.1.*unaffected6.6.145 to ≤ 6.6.*unaffected6.12.97 to ≤ 6.12.*unaffected6.18.40 to ≤ 6.18.*unaffected7.1.5 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/c69b9003332917b652175d5fa9d84158c5ed8617 ↗
- https://git.kernel.org/stable/c/8afc24a884aff6a6f08028bd779ee65c40054455 ↗
- https://git.kernel.org/stable/c/c23083b472a720c3f60b147db05b25b751c7c1bf ↗
- https://git.kernel.org/stable/c/a31893206588374d7d16fad387189d8165c7efd3 ↗
- https://git.kernel.org/stable/c/41081202eb823f5b27ff164b12010b24428100ad ↗
- https://git.kernel.org/stable/c/bb11485a87fbb2254b62cfed630b699d50e57da8 ↗