PT-2026-85733 · Linux · Linux
CVE-2026-80855
·
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 open O TRUNC DAX failure
fuse open() takes filemap invalidate lock() for a DAX truncate
(dax truncate = true) and releases it before the out inode unlock
label. But when fuse dax break layouts() fails, the goto
out inode unlock skips the unlock and leaks the rwsem, so any later
fault or truncate on the file stalls on the stale lock.
fuse dax break layouts() can fail with -ERESTARTSYS when a signal
interrupts the wait for busy DAX pages to drain:
open("file", O RDWR | O TRUNC)
└─ fuse open()
├─ filemap invalidate lock() # dax truncate
└─ fuse dax break layouts()
└─ dax break layout()
└─ wait page idle() # TASK INTERRUPTIBLE
└─ fuse wait dax page() # unlock, schedule, re-lock
└─ signal → -ERESTARTSYS
goto out inode unlock # <- lock leaked
Fix this by moving filemap invalidate unlock() below the label so
that all error paths release the lock, and rename the label to
out unlock as it now covers more than just the inode lock.
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Linux