{"id":"CVE-2026-99241","title":"ntfs: take invalidate_lock in ntfs_filemap_page_mkwrite()","summary":"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 concurr…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 9c87959601e80b39a45250e362e6ddfec17cb0fa < 57c0d5281666d150c73e56e6795a4eef3ede8693","Linux >= 9c87959601e80b39a45250e362e6ddfec17cb0fa < 0fecc393f2060e6bc25138df32cb923ec7071c6b","Linux 7.1"],"published":"2026-11-02","updated":"2026-11-02","sourceUpdated":"2026-11-02T16:06:44.163Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-99241","references":[{"url":"https://git.kernel.org/stable/c/57c0d5281666d150c73e56e6795a4eef3ede8693"},{"url":"https://git.kernel.org/stable/c/0fecc393f2060e6bc25138df32cb923ec7071c6b"}],"tags":["cve.org"],"epss":0.00154,"epssPercentile":0.04561,"ingestedAt":"2026-11-05T19:30:42.702Z","slug":"CVE-2026-99241","body":"## Overview\n\nIn 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.\n\n## Affected\n\n- `Linux >= 9c87959601e80b39a45250e362e6ddfec17cb0fa < 57c0d5281666d150c73e56e6795a4eef3ede8693`\n- `Linux >= 9c87959601e80b39a45250e362e6ddfec17cb0fa < 0fecc393f2060e6bc25138df32cb923ec7071c6b`\n- `Linux 7.1`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}