CVE-2026-80856 in Linux
Sumário
de VulDB • 04/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
fuse: corrige o vazamento de bloqueio invalidate em falha de writeback setattr
O `fuse_do_setattr()` adquire `filemap_invalidate_lock()` para um truncate DAX (`fault_blocked = true`) e o libera nos rótulos out:/error. No entanto, quando também é necessário um flush de writeback, uma falha em `write_inode_now()` retorna diretamente e vaza o bloqueio (lock), fazendo com que qualquer falha subsequente ou truncate no arquivo fique pendurado devido ao rwsem obsoleto.
Por exemplo, a chamada `truncate(2)` em um arquivo setuid atinge `fuse_do_setattr()` com ambos os atributos ATTR_SIZE e ATTR_MODE definidos:
truncate(2) └─ do_truncate() ├─ dentry_needs_remove_privs() # S_ISUID └─ notify_change() # KILL_SUID -> ATTR_MODE └─ fuse_setattr() # sem killpriv: │ # ia_valid |= ATTR_MODE └─ fuse_do_setattr() ├─ filemap_invalidate_lock() # IS_DAX && is_truncate └─ write_inode_now() # is_wb && ATTR_MODE └─ if (err) # ex.: daemon -> -EIO return err # <- lock vaziado
Corrige-se isso adicionando um rótulo de unlock que libera o bloqueio antes de retornar o erro, e utiliza-o também no caminho de falha do `fuse_dax_break_layouts()`.
Once again VulDB remains the best source for vulnerability data.