{"id":"CVE-2026-90117","revision":"36ddef906ec045cda124b3c88104271f","records":[{"revision":"36ddef906ec045cda124b3c88104271f","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-90117","aliases":[],"title":"ntfs: validate usa_ofs before preserving the update sequence number","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nntfs: validate usa_ofs before preserving the update sequence number\n\nWhen ntfs_mft_record_alloc() reuses a free mft record it reads the old\nupdate sequence number straight from the on-disk record:\n\n     usn = *(__le16 *)((u8 *)m + le16_to_cpu(m->usa_ofs));\n\nHere m points into the raw $MFT page-cache folio, which still holds\nunvalidated, MST-protected bytes: the folio is read by a plain\niomap_read_folio() and neither post_read_mst_fixup() nor\nntfs_mft_record_check() has run on it (both work on private copies).\nm->usa_ofs is therefore an untrusted u16, and a corrupted record can put\nit past the end of the record so the two-byte read lands outside the\nfolio.  Reading such a record while creating a file gives, under KASAN:\n\n   BUG: KASAN: use-after-free in ntfs_mft_record_alloc+...\n   Read of size 2 at addr ...\n    ntfs_mft_record_alloc -> __ntfs_create -> ntfs_create -> path_openat\n\nOnly preserve the old update sequence number when usa_ofs is even and in\nrange, mirroring the check ntfs_mft_record_check() already applies;\notherwise leave usn zero, which the existing restore below skips.","state":0,"publishedAt":"2026-09-17T16:06:22.705+00:00","modifiedAt":"2026-10-19T08:58:15.75+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"fs/ntfs/mft.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"495e90fa334828d4119061e2726af51d0a0fb4ed\",\n                            \"lessThan\": \"ea5a3c30710710c1dc5e483d3313309ec2e868f7\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"495e90fa334828d4119061e2726af51d0a0fb4ed\",\n                            \"lessThan\": \"81684340963da2e898eabb8c1e274433d9375bc6\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"fs/ntfs/mft.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"7.1\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"7.1\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.6\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[],"references":["https://git.kernel.org/stable/c/ea5a3c30710710c1dc5e483d3313309ec2e868f7","https://git.kernel.org/stable/c/81684340963da2e898eabb8c1e274433d9375bc6"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-90117","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-90117","identifiers":["CVE-2026-90117"]},"retained":false,"historicalAffected":[]}],"coverage":[]}