PT-2026-85734 · Linux · Linux

CVE-2026-80856

·

Published

2026-09-04

·

Updated

2026-09-04

None

No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
In the Linux kernel, the following vulnerability has been resolved:
fuse: fix invalidate lock leak on setattr writeback failure
fuse do setattr() takes filemap invalidate lock() for a DAX truncate (fault blocked = true) and releases it at the out:/error: labels. But when a writeback flush is also needed, a write inode now() failure returns directly and leaks the lock, so any later fault or truncate on the file stalls on the stale rwsem.
For example, truncate(2) on a setuid file reaches fuse do setattr() with both ATTR SIZE and ATTR MODE set:
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
Fix this by adding an unlock label that releases the lock before returning the error, and use it for the fuse dax break layouts() failure path as well.
Found an issue in the description? Have something to add? Feel free to write us 👾

Related Identifiers

CVE-2026-80856

Affected Products

Linux