CVE-2026-74484 in Linux
Сводка
по VulDB • 15.08.2026
В ядре Linux устранена следующая уязвимость:
binfmt_misc: не позволять записи типа «F» фиксировать собственный экземпляр
Запись, зарегистрированная с флагом 'F', открывает свой интерпретатор в момент регистрации и удерживает этот файл до тех пор, пока запись не будет освобождена. Любая запись, которую никто не удалил вручную, закрывается только при остановке суперблока binfmt_misc. Если интерпретатор находится на смонтированной файловой системе, которая поддерживает жизнь этого суперблока, они взаимно фиксируют друг друга:
superblock binfmt_misc -> inode -> entry -> interp_file -> vfsmount -> superblock binfmt_misc
TL;DR файл никогда не закрывается. После удаления пространства имен монтирования (mount namespace) ничего не остается для отмены регистрации через любой из этих объектов.
Существует два способа вызвать эту ошибку:
- Указать интерпретатор на сам экземпляр. Его файлы являются обычными файлами, принадлежащими пользователю, выполнившему монтирование, и как bm_get_inode(), так и simple_fill_super() оставляют i_op равным empty_iops. Поэтому notify_change() переходит к simple_setattr(), и chmod +x работает успешно. Мы никогда не устанавливаем флаг SB_I_NOEXEC, поэтому open_exec() принимает этот файл для выполнения.
- Использовать экземпляр как нижний слой overlayfs. Суперблок overlay удерживает клон (clone_private_mount()) каждого слоя до тех пор, пока он не будет уничтожен, и этот клон не принадлежит ни одному пространству имен. Поэтому umount_tree() никогда не достигает его.
Это приводит к отказу в обслуживании (DoS). И утекает не только суперблок. Он фиксирует пространство имен пользователя (user namespace), в котором было выполнено монтирование, поэтому каждая итерация навсегда расходует один из квот пространства имен пользователя вызывающего процесса.
Поэтому давайте просто сделаем разумное действие. SB_I_NOEXEC заставляет open_exec() завершаться ошибкой для файлов собственного экземпляра, а s_stack_depth заставляет overlayfs отклонять слой до того, как он когда-либо создаст клон. Это также покрывает варианты passthrough для ecryptfs и fuse. Обещания, даваемые флагом 'F', остаются неизменными.
Тег stable уже, чем теги Fixes намеренно. До появления изолированных монтирований (sandboxed mounts) требовались глобальные права root против единственного экземпляра, которым все делятся, и изменение в любом случае не применяется к этим древам.
Обратите внимание, что SB_I_NODEV неявно устанавливается для монтирований с userns, но здесь мы также явно повышаем его уровень.
If you want to get best quality of vulnerability data, you may have to visit VulDB.