{"identifier":"CVE-2026-99241","cve":{"id":"CVE-2026-99241","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nntfs: take invalidate_lock in ntfs_filemap_page_mkwrite()\n\nntfs_filemap_page_mkwrite() calls iomap_page_mkwrite() without holding\nmapping->invalidate_lock, so a concurrent truncate or fallocate can be\nin the middle of invalidating pagecache and rewriting the runlist while\nthe write fault maps blocks and dirties the folio.  This races with\nntfs_attr_fallocate(), which merges clusters into the in-memory\nrunlist, drops the runlist lock, and only afterwards zeroes the newly\nallocated clusters on disk; and with the punch-hole/insert/collapse\npaths that free clusters after truncating the cache.\n\nPer Documentation/filesystems/locking.rst, ->page_mkwrite() must ensure\nthere are no truncate/invalidate races, \"usually mapping->invalidate_lock\nis suitable for proper serialization\".  xfs takes its mmaplock (= the\ninvalidate_lock rwsem) shared in exactly this path.\n\nTake invalidate_lock shared around iomap_page_mkwrite().  The read-only\nfault path is already covered because filemap_fault() itself grabs\ninvalidate_lock shared on instantiation/read paths; only page_mkwrite\nwas bypassing it in this driver.","published":"2026-11-02T16:17:49.907000+00:00","modified":"2026-11-02T16:17:49.907000+00:00","status":"Received","score":null,"severity":"UNSCORED","vector":"","cvss_version":"","affected":[],"weaknesses":[],"references":[{"url":"https://git.kernel.org/stable/c/0fecc393f2060e6bc25138df32cb923ec7071c6b","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/57c0d5281666d150c73e56e6795a4eef3ede8693","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"}],"kev":null,"kev_checked":true,"metrics":{},"configurations":[],"source":"nvd","retrieved_at":"2026-11-02T19:29:46.141206+00:00","exploited":false,"kev_stale":false,"products":[],"priority":{"label":"Assess exposure and vendor guidance","reasons":["No higher-priority signal is available in the current stored evidence.","Fresh EPSS data is unavailable; missing values are not zero."]},"epss":null,"version_assessment":null},"news":[],"campaigns":[],"domains":[{"domain":"git.kernel.org","source_url":"https://git.kernel.org/stable/c/0fecc393f2060e6bc25138df32cb923ec7071c6b","investigate_url":"https://investigate.aeglixmind.com/#git.kernel.org"}],"arsenal_url":"https://arsenal.aeglixmind.com/?cve=CVE-2026-99241","catalog_url":"https://cves.aeglixmind.com/cve/CVE-2026-99241","research_url":"https://investigate.aeglixmind.com/research/cve/CVE-2026-99241","coverage":{"news_candidates_checked":0,"campaign_candidates_checked":0,"bounded":false,"notice":"Exact CVE mentions in stored public excerpts and reviewed campaign content only. A mention is not proof of exploitation, attribution or tool suitability. Missing matches do not establish absence."}}