CVE-2026-80856

fuse: fix invalidate lock leak on setattr writeback failure

State
Published
Severity
Not scored
Published
Sep 4, 2026
Updated
Oct 30, 2026
Reserved
Aug 26, 2026

Read the record on cve.org

Description

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 6ae330cad6ef22ab8347ea9e0707dc56a7c7363f to before 92faaee1b108c6e4b07730d20896a6593a85f675Affected
  • 6ae330cad6ef22ab8347ea9e0707dc56a7c7363f to before 8f14906ce9103ab8f2f1ebda45935a0d61b9d763Affected
  • 6ae330cad6ef22ab8347ea9e0707dc56a7c7363f to before 03cfeeb135428fa83f0791d3f8f94d9298cae695Affected
  • 6ae330cad6ef22ab8347ea9e0707dc56a7c7363f to before 92588d187ba4697a322e7aefe5d9e538a87d1cd2Affected
  • 6ae330cad6ef22ab8347ea9e0707dc56a7c7363f to before ea9fea370b8de4ffd72e0ef89550415c15637787Affected
  • 6ae330cad6ef22ab8347ea9e0707dc56a7c7363f to before 1758730d9eaa3c06cf415c3446d9f6eed9ed3eedAffected
  • 6ae330cad6ef22ab8347ea9e0707dc56a7c7363f to before dd278d954c0e96a9cbd3cc491e07b8267d25f8d5Affected
  • 6ae330cad6ef22ab8347ea9e0707dc56a7c7363f to before e8457ebfd77a46e8d1210e8888ea914ad064558eAffected
  • 6ae330cad6ef22ab8347ea9e0707dc56a7c7363f to before 9afeca0d569c9fc89d758fe7a9339d1e8afb1546Affected
LinuxLinux
  • 5.10Affected
  • before 5.10Not affected
  • 5.10.273 through 5.10.*Not affected
  • 5.15.220 through 5.15.*Not affected
  • 6.1.187 through 6.1.*Not affected
  • 6.6.156 through 6.6.*Not affected
  • 6.12.108 through 6.12.*Not affected
  • 6.18.49 through 6.18.*Not affected
  • 7.1.13 through 7.1.*Not affected
  • 7.2.3 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.