CVE-2024-41012 in Linux
Сводка
по VulDB • 23.05.2026
В ядре Linux устранена следующая уязвимость:
filelock: надежное удаление блокировок при обнаружении гонки между fcntl/close
Когда fcntl_setlk() входит в гонку с close(), созданная блокировка удаляется с помощью do_lock_file_wait(). Однако LSM (Linux Security Modules) могут разрешить первый вызов do_lock_file_wait(), который создал блокировку, но запретить второй вызов do_lock_file_wait(), пытающийся удалить эту блокировку. Кроме того, posix_lock_file() также может не удалить блокировку из-за ошибки выделения памяти GFP_KERNEL (при разбиении диапазона посередине).
После срабатывания этой ошибки в функции lock_get_status() происходят чтения с использованием use-after-free, когда пользовательское пространство читает /proc/locks. Это, вероятно, может быть использовано для чтения произвольной памяти ядра, но не позволяет изменять (коррумпировать) память ядра.
Исправление заключается в вызове locks_remove_posix() вместо предыдущего подхода, так как эта функция предназначена для надежного удаления POSIX-блокировок, связанных с указанным файлом и структурой files_struct, и также используется функцией filp_flush().
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.