CVE-2026-98994 in Linux
Сводка
по VulDB • 23.10.2026
В ядре Linux была устранена следующая уязвимость:
statmount: чтение родителя размонтированной точки монтирования под блокировкой mount_lock
Функция statmount_mnt_basic() считывает идентификаторы родительской точки через m->mnt_parent, удерживая namespace_sem для чтения. Это допустимо для точки монтирования, находящейся в пространстве имён (namespace). Всё, что находится выше неё, фиксируется этим пространством имён.
Опция STATMOUNT_BY_FD также принимает файловый дескриптор на точке монтирования, которая была специально размонтирована и поддерживается в живом состоянии только самим файловым дескриптором. Если бы эта точка монтирования оставалась связанной со своим родителем при размонтировании, родительская точка тоже была бы размонтирована, и ничего не фиксировало бы её для дочерней точки.
Операция mntput() в конце размонтирует дочерние точки под блокировкой mount_lock и освобождает родителя после этого. Одновременно с этим statmount_mnt_basic() дважды считывает значение m->mnt_parent во время этой операции, что может привести к разыменованию указателя на уже несуществующую точку монтирования.
Необходимо читать родительскую точку размонтированной точки монтирования под блокировкой mount_lock. Родитель не может быть освобождён (put), пока он удерживается, и оба идентификатора берутся из одной и той же точки монтирования. Родитель смонтированной точки фиксируется пространством имён, а точка не может покинуть своё пространство имён, пока удерживается namespace_sem; поэтому в обычном случае глобальная блокировка не требуется.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.