CVE-2026-80855

fuse: fix invalidate lock leak on open O_TRUNC DAX failure

N/A
Published: September 4, 2026 at 03:55 PM UTC
Updated: October 30, 2026 at 01:20 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
N/A
Exploit prediction
EPSS 0.2%

Description

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.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

1fdbbe246daf348adaa0739463384b16ceba1fc02fdbb8dd01556e1501132b5ad3826e8f71e24a8b5.10.1795.15.1095.18.185.19.26.081775ab858b4236c52c5da7e25cec6e49dd91b46b57e150ac2eac791d5d187923b73dc2dafaf67fad58366aab86854217b81679d1a9dcd54a2edfc2a
Vendor states this is fixed in 1b04d80a27d317064cce2307472f5bef9975bc50 (fixed)
Vendor states this is fixed in 1d3e701cda2f41d48aa721b3ebefbe0fbf8d74da (fixed)
Vendor states this is fixed in 7288c279ddbd654a06c82118c1a3f5570c1807f0 (fixed)
Vendor states this is fixed in 776e85fda752f9a15e0f82dec42ecacd12a9bd94 (fixed)
Vendor states this is fixed in a61524da59a2f5ac9c8de23ff98b30da769ab144 (fixed)
Vendor states this is fixed in a927f1867e61b78f39f9da0bbba3c98c2ca151fe (fixed)
Vendor states this is fixed in dcf30a56624c2a0cfab1bada5b1ca8cc0c02f010 (fixed)
Vendor states this is fixed in e981474d7bf1457da12404e169ea147d2c8ecea7 (fixed)
Affected range stops below 5.11, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 5.15.220 (unaffected)
Affected range stops below 5.19, so it looks safe — our inference, not a vendor statement
Affected range stops below 5.20, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 6.0 (unaffected)
Vendor states this is fixed in 6.1.187 (unaffected)
Vendor states this is fixed in 6.12.108 (unaffected)
Vendor states this is fixed in 6.18.49 (unaffected)
Vendor states this is fixed in 6.6.156 (unaffected)
Vendor states this is fixed in 7.1.13 (unaffected)
Vendor states this is fixed in 7.2.3 (unaffected)
Vendor states this is fixed in 7.3 (unaffected)
Vendor states this is fixed in 7.3-rc1 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

Quick Info

StatusRECEIVED

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card