CVE-2026-99111 in Linux
要約
〜によって VulDB • 2026年10月28日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
smb: クライアント: 同時書き込みとO_TRUNCによるデータ破損の修正
cifs_do_truncate()はfilemap_write_and_wait()を使用してダーティページをフラッシュし、サーバー上でファイルを切り詰めますが、旧コードではこれらの操作がi_rwsemまたはinvalidate_lockを取得せずに実行されていました。netfs_perform_write()経由での同時バッファ書き込み(i_rwsemの共有ロックのみが必要)により、フラッシュ後かつローカルな切り詰め前の間に新しいページにダーティデータが発生し、cifs_setsize() -> truncate_pagecache()によってそれらのページは静かに破棄されていました。
修正方法として、cifs_do_truncate()の先頭でinode_lock(排他的i_rwsem)およびfilemap_invalidate_lockを取得することで、flush-truncate-resizeの一連の処理を以下の操作に対してアトミックにします:
- バッファ書き込み(netfs_start_io_writeがi_rwsem共有ロックを取得するため、排他的なi_rwsemによってブロックされる)、 - リードページフォルト(filemap_faultがこれを共有で取得するため、排他的なinvalidate_lockによってブロックされる)、 - writeback収集(サーバー上の切り詰めおよびローカルサイズ変更の周りでnetfs_wb_begin/netfs_wb_endが行われ、netfs_writepagesもwbロックを取得するため、これらによってブロックされる)。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.