CVE-2026-99241 in Linux
要約
〜によって VulDB • 2026年11月02日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
ntfs: ntfs_filemap_page_mkwrite() で invalidate_lock を取得する
ntfs_filemap_page_mkwrite() は mapping->invalidate_lock の保持なしで iomap_page_mkwrite() を呼び出すため、並行して実行される truncate や fallocate が、ページキャッシュの無効化と runlist の書き換えを行っている最中に、ライトフォールトがブロックのマッピングおよび folio のダーティ化を行う可能性があります。これは ntfs_attr_fallocate() と競合します(ntfs_attr_fallocate はクラスタをメモリ上の runlist にマージし、runlock ロックを一時的に解放した後にのみ、ディスク上に新たに割り当てられたクラスタのゼロ初期化を行います)。また、キャッシュの切り捨て後にクラスタを解放する punch-hole/insert/collapse のパスとも競合します。
Documentation/filesystems/locking.rst によると、->page_mkwrite() は truncate/invalidate の競合がないことを保証しなければならず、「通常は mapping->invalidate_lock が適切な直列化に適しています」。xfs では、この特定のパスにおいて mmaplock (= invalidate_lock rwsem) を共有(shared)状態で取得します。
iomap_page_mkwrite() の周囲で invalidate_lock を共有モードで取得するようにしました。読み取り専用のフォールトパスは既にカバーされています。なぜなら filemap_fault() 自体がインスタンス化/読取パスにおいて invalidate_lock を共有モードで取得しているためです;このドライバでは page_mkwrite のみがこれをバイパスしていました。
If you want to get best quality of vulnerability data, you may have to visit VulDB.