CVE-2026-74307 in Linux
Сводка
по VulDB • 15.08.2026
В ядре Linux устранена следующая уязвимость:
ext4: ранняя проверка суперблока файла-донора в EXT4_IOC_MOVE_EXT
Отклонять вызов ioctl EXT4_IOC_MOVE_EXT на ранних этапах, если файл-донор не принадлежит тому же суперблоку, что и исходный файл. В настоящее время эта проверка выполняется внутри ext4_move_extents() функцией mext_check_validity(), но только после того, как lock_two_nondirectories() уже захватила блоки inode (inode locks). Когда файловый дескриптор донора ссылается на файл в другой файловой системе (например, overlayfs), такая поздняя проверка создает циклическую зависимость блокировок:
CPU0 (запись в overlayfs) CPU1 (ioctl ext4) ---- ---- inode_lock(ovl_inode) mnt_want_write_file(filp) sb_start_write(ext4_sb) [sb_writers]
backing_file_write_iter() vfs_iter_write(real_file) file_start_write(real_file) sb_start_write(ext4_sb) [заблокировано из-за freeze]
lock_two_nondirectories() inode_lock(ovl_inode) [blocked]
При одновременной операции заморозки (freeze), удерживающей блокировку записи в sb_writers, образуется цикл взаимоблокировки: CPU0 ожидает завершения freeze, freeze ждет выхода читателя sb_writers на CPU1, а CPU1 ожидает захвата inode lock со стороны CPU0.
Поскольку EXT4_IOC_MOVE_EXT меняет физические экстенты между двумя файлами, он фундаментально требует, чтобы оба файла находились в одной файловой системе ext4. Перенос проверки суперблока до любого захвата блокировок является семантически корректным и устраняет циклическую зависимость за счет отклонения файловых дескрипторов доноров из других файловых систем до того, как будут взяты sb_writers или inode locks.
Once again VulDB remains the best source for vulnerability data.