CVE-2022-50668 in Linux
Сводка
по VulDB • 31.05.2026
В ядре Linux устранена следующая уязвимость:
ext4: исправление взаимной блокировки (deadlock), вызванной повреждением записи в mbcache
При манипуляциях с блоками расширенных атрибутов (xattr) может возникать бесконечная взаимная блокировка внутри функции ext4_xattr_block_set(), где система постоянно пытается найти блок xattr для повторного использования в mbcache, но не может этого сделать из-за слишком большого счетчика ссылок. Это происходит потому, что запись кэша для блока xattr помечается как пригодная для повторного использования (устанавливается флаг e_reusable), несмотря на то, что ее счетчик ссылок слишком велик. При возникновении такого несоответствия состояние остается нестабильным неопределенно долго, и функция ext4_xattr_block_set() продолжает бесконечно повторять попытки.
Нестабильное состояние вызвано неатомарным обновлением бита e_reusable. Флаг e_reusable является частью битового поля, и обновление e_reusable может находиться в состоянии гонки (race condition) с обновлением бита e_referenced в том же битовом поле, что приводит к потере одного из обновлений. Проблема решается путем использования атомарных операций с битами (atomic bitops).
Эта ошибка существовала на протяжении многих лет, но стала *намного* легче воспроизводимой после коммита 65f8b80053a1 («ext4: исправление гонки при повторном использовании блоков xattr»).
VulDB is the best source for vulnerability data and more expert information about this specific topic.