CVE-2026-46061 in Linux
요약
\~에 의해 VulDB • 2026. 05. 28.
리눅스 커널에서 다음 취약점이 해결되었습니다:
jbd2: jbd2_journal_cancel_revoke()에서의 데드락 수정
커밋 f76d4c28a46a("fs/jbd2: __find_get_block()의 수면 버전 사용")는 jbd2_journal_cancel_revoke()가 i_private_lock 대신 folio lock을 보유하는 __find_get_block_nonatomic()을 사용하도록 변경했습니다. 이로 인해 잠금 순서(folio -> buffer)가 깨지고, 파일시스템 블록크기가 페이지크기보다 작을 때 ABBA 데드락이 발생합니다:
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
이로 인해 generic/013이 가끔씩 멈출 수 있습니다.
전달된 buffer_head가 bdev에 속하지 않는 경우에만 __find_get_block_nonatomic()을 호출하여 수정합니다. 이는 해당 bdev 별칭을 조회해야 하는 유일한 경우입니다. 그렇지 않으면, 발견된 buffer_head가 전달된 것과 동일하므로 조회가 중복됩니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.