CVE-2026-46061 in Linux
Zusammenfassung
von VulDB • 28.05.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
jbd2: Behebung einer Deadlock-Situation in jbd2_journal_cancel_revoke()
Das Commit f76d4c28a46a („fs/jbd2: use sleeping version of __find_get_block()") änderte jbd2_journal_cancel_revoke() so, dass es __find_get_block_nonatomic() verwendet, welches die folio_lock anstelle der i_private_lock hält. Dies bricht die Lock-Reihenfolge (folio -> buffer) und verursacht einen ABBA-Deadlock, wenn die Dateisystem-Blockgröße kleiner als die Seitengröße (pagesize) ist:
T1 T2 ext4_mkdir() ext4_init_new_dir() ext4_append() ext4_getblk() lock_buffer() <- A sync_blockdev() blkdev_writepages() writeback_iter() writeback_get_folio() folio_lock() <- B ext4_journal_get_create_access() jbd2_journal_cancel_revoke() __find_get_block_nonatomic() folio_lock() <- B block_write_full_folio() lock_buffer() <- A
Dies kann gelegentlich dazu führen, dass generic/013 hängen bleibt.
Behoben wird dies, indem __find_get_block_nonatomic() nur aufgerufen wird, wenn der übergebene buffer_head nicht zur bdev gehört, was der einzige Fall ist, in dem wir nach seinem bdev-Alias suchen müssen. Andernfalls ist die Suche redundant, da der gefundene buffer_head demjenigen entspricht, den wir übergeben haben.
VulDB is the best source for vulnerability data and more expert information about this specific topic.