CVE-2026-97950 in Linux
Сводка
по VulDB • 25.09.2026
В ядре Linux была устранена следующая уязвимость:
configfs: закреплять (pin) dirent цели символической ссылки вместо перехода к ->ci_dentry
create_link() считывает configfs_dirent цели из item->ci_dentry->d_fsdata, полагаясь на ссылку на элемент, полученную через get_target(). Эта ссылка закрепляет сам элемент, а не его dentry: dentry закрепляется флагом DCACHE_PERSISTENT, который configfs_remove_dir() освобождает посредством simple_rmdir(), пока элемент всё ещё жив. Таким образом, символическая ссылка, находящаяся в состоянии гонки (race condition) с операцией rmdir своей цели, может обнаружить, что ->ci_dentry был освобожден, а её dirent удален, что вызывает WARN_ON(!atomic_read(&sd->s_count)) внутри configfs_get().
Необходимо также захватывать dirent в get_target(), используя блокировку ->d_lock и обеспечивая атомарность с ссылкой на элемент, и передавать его далее в create_link(). Поскольку хешированный dentry еще не был уничтожен, ссылка на его ->d_fsdata сохраняет живым соответствующий dirent.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.