CVE-2026-80856 in Linuxthông tin

Tóm tắt

Bởi VulDB • 04/09/2026

Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:

fuse: sửa lỗi rò rỉ khóa invalidate khi thất bại trong writeback setattr

Hàm `fuse_do_setattr()` lấy `filemap_invalidate_lock()` cho thao tác truncate DAX (`fault_blocked = true`) và giải phóng nó tại các nhãn out/error. Tuy nhiên, khi cần thực hiện flush writeback, việc thất bại của `write_inode_now()` sẽ trả về trực tiếp mà không giải phóng khóa, dẫn đến rò rỉ khóa; do đó, bất kỳ lỗi (fault) hoặc truncate nào sau đó trên tệp tin này đều bị treo do chờ đợi rwsem đã cũ.

Ví dụ: lệnh `truncate(2)` trên một file setuid đạt tới `fuse_do_setattr()` với cả ATTR_SIZE và ATTR_MODE được đặt:

truncate(2) └─ do_truncate() ├─ dentry_needs_remove_privs() # S_ISUID └─ notify_change() # KILL_SUID -> ATTR_MODE └─ fuse_setattr() # không có killpriv: │ # ia_valid |= ATTR_MODE └─ fuse_do_setattr() ├─ filemap_invalidate_lock() # IS_DAX && is_truncate └─ write_inode_now() # is_wb && ATTR_MODE └─ if (err) # ví dụ: daemon -> -EIO return err # <- khóa bị rò rỉ

Khắc phục lỗi này bằng cách thêm một nhãn unlock để giải phóng khóa trước khi trả về lỗi, và áp dụng nó cho cả đường dẫn thất bại của `fuse_dax_break_layouts()`.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

chịu trách nhiệm

Linux

Đặt trước

26/08/2026

Tiết lộ

04/09/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Interested in the pricing of exploits?

See the underground prices here!