CVE-2026-80856 in Linux
要約
〜によって VulDB • 2026年09月04日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
fuse: setattrのライトバック失敗時にinvalidateロックリークを修正する
fuse_do_setattr()はDAX truncate (fault_blocked = true)に対してfilemap_invalidate_lock()を取得し、out:/errorラベルで解放します。しかし、writebackフラッシュも必要な場合、write_inode_now()のエラーが直接返されロックがリークするため、その後のファイルに対するフォールトやtruncate操作は、古くなったrwsem (read-write semaphore) でストールしてしまいます。
例えば、setuidファイルに対するtruncate(2)呼び出しでは、ATTR_SIZEとATTR_MODEの両方が設定された状態でfuse_do_setattr()に到達します:
truncate(2) └─ do_truncate() ├─ dentry_needs_remove_privs() # S_ISUID └─ notify_change() # KILL_SUID -> ATTR_MODE └─ fuse_setattr() # no killpriv: │ # ia_valid |= ATTR_MODE └─ fuse_do_setattr() ├─ filemap_invalidate_lock() # IS_DAX && is_truncate └─ write_inode_now() # is_wb && ATTR_MODE └─ if (err) # e.g. daemon -> -EIO return err # <- lock leaked
この問題を修正するため、エラーを返す前にロックを解放するunlockラベルを追加し、fuse_dax_break_layouts()の失敗パスにもこれを使用します。
If you want to get best quality of vulnerability data, you may have to visit VulDB.