{"id":"CVE-2026-92487","revision":"36e3fdc7be3a462f93b69c98d4e54bb2","records":[{"revision":"36e3fdc7be3a462f93b69c98d4e54bb2","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-92487","aliases":[],"title":"exfat: fix valid_size extension over a shared writable mapping","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nexfat: fix valid_size extension over a shared writable mapping\n\nWhen a shared writable mapping has its valid_size extended by a buffered\nwrite or a page fault, exfat zeroes the page-cache gap below the new\nvalid_size. A store through the mapping can race with this zeroing and be\noverwritten.\n\nFix this by zeroing the gap lazily. Drop ->map_pages so that every first\nwrite fault goes through exfat_page_mkwrite(), which advances valid_size to\ncover the faulting page. With fault-around enabled, a store could install a\nwritable PTE, skip ->page_mkwrite(), and land past valid_size without\nadvancing it. Extending valid_size one faulting page at a time also leaves\nnever-written pages in a large mapping alone.\n\nThe gap is filled with block granularity, zeroing only the not-uptodate\nblocks and preserving blocks that may hold data stored through the mapping.\nOn the buffered-write path the invalidate lock is held and the gap is\nunmapped before zeroing, so a racing store re-faults and, under the inode\nlock, completes only after the gap has been zeroed and valid_size covers\nit.","state":0,"publishedAt":"2026-09-17T16:10:02.317+00:00","modifiedAt":"2026-10-19T09:03:53.813+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/exfat/exfat_fs.h\",\n                        \"fs/exfat/file.c\",\n                        \"fs/exfat/iomap.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"82a81a7352bcf5f2756ac33d47ee0582737e9a85\",\n                            \"lessThan\": \"24f20986b253c3e4eb13ebe3c2007d1d352408a6\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"82a81a7352bcf5f2756ac33d47ee0582737e9a85\",\n                            \"lessThan\": \"1135704ed22f54873eb0498a232611d9eca30dd4\",\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/exfat/exfat_fs.h\",\n                        \"fs/exfat/file.c\",\n                        \"fs/exfat/iomap.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"7.2\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"7.2\",\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/24f20986b253c3e4eb13ebe3c2007d1d352408a6","https://git.kernel.org/stable/c/1135704ed22f54873eb0498a232611d9eca30dd4"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-92487","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-92487","identifiers":["CVE-2026-92487"]},"retained":false,"historicalAffected":[]}],"coverage":[]}