
Уязвимость в FUSE ядра Linux позволяет злоумышленникам получить права root (администратора)!
Для пользователей и системных администраторов Linux опубликовано важное предупреждение о безопасности. Новая уязвимость, обнаруженная в подсистеме FUSE (Filesystem in Userspace) ядра Linux, может позволить пользователю, имеющему доступ к системе, получить права администратора (root).
Данная уязвимость зарегистрирована под идентификатором CVE-2026-31694 и возникает из-за ошибки управления памятью в процессе кэширования записей каталогов (directory entries) в файловой системе FUSE.
Что такое FUSE?
FUSE (Filesystem in Userspace) — это механизм ядра Linux, позволяющий создавать файловые системы, работающие в пользовательском пространстве (userspace). Основная логика файловой системы выполняется программой на уровне пользователя, а ядро Linux взаимодействует с этой программой через устройство /dev/fuse.
Сегодня такие технологии, как SSHFS, EncFS, AppImage и многие другие виртуальные или сетевые файловые системы используют именно FUSE.
Для ускорения доступа к файлам ядро Linux временно сохраняет записи каталогов (directory entries) в кэше страниц (page cache). Именно в этом механизме была обнаружена ошибка, приводящая к проблеме безопасности.
Как работает уязвимость?
Согласно анализу исследователей безопасности, проблема существует в функции fuse_add_dirent_to_cache().
Эта функция вычисляет размер записи каталога перед помещением ее в кэш. Однако в случаях, когда размер записи каталога превышает размер одной страницы памяти (memory page), недостаточная проверка приводит к ошибке.
Например, в системах с размером страницы 4 КиБ (4096 байт) вредоносный FUSE-сервер может отправить запись каталога размером 4120 байт. В результате лишние 24 байта записи записываются за пределы выделенной области — в соседнюю страницу памяти.
Это приводит к переполнению кучи/кэша страниц (heap/page cache overflow), создавая возможность повреждения других данных ядра.
Как осуществляется атака?
Продемонстрированный исследователями Proof-of-Concept показал, что поврежденная область памяти может повлиять на код, находящийся в кэше программ с атрибутом SUID (Set User ID).
Например, начальные инструкции программы /usr/bin/su могут быть заменены на вредоносный код, выполняющий следующие системные вызовы:
- setuid(0)
- setgid(0)
После успешного выполнения этих вызовов процесс автоматически получает права root-пользователя. В результате злоумышленник может обойти механизмы аутентификации, выполнять команды с полными правами администратора и установить полный контроль над системой.
Кто находится в зоне риска?
Данная уязвимость может затрагивать:
- системы, использующие подсистему FUSE ядра Linux;
- устройства с конфигурацией страницы памяти 4 КиБ;
- новые версии ядра Linux, использующие большие буферы readdir;
- среды, где обычным пользователям разрешено запускать или монтировать файловые системы FUSE.
Если в системе включены непривилегированные пространства имен пользователей (unprivileged user namespaces) или через fusermount3 обычным пользователям разрешен запуск файловых систем FUSE, вероятность эксплуатации значительно возрастает.
Следует также отметить, что данная уязвимость не эксплуатируется удаленно (remote). Злоумышленник должен сначала получить локальный доступ к системе или иметь возможность выполнять код в системе с правами обычного пользователя.
Возможные последствия
В случае успешной эксплуатации данной уязвимости могут возникнуть следующие риски:
- получение прав root (администратора);
- обход ограничений безопасности;
- изменение или уничтожение системных файлов;
- скрытая установка вредоносных программ;
- хищение конфиденциальных данных;
- полный захват контроля над операционной системой.
На серверах, в облачной инфраструктуре, контейнерных платформах и многопользовательских Linux-системах данная уязвимость представляет особую опасность.
Рекомендации по защите
Системным администраторам рекомендуется принять следующие меры:
- как можно скорее установить обновления безопасности, предоставленные вашим дистрибутивом Linux;
- регулярно отслеживать обновления ядра (kernel) и своевременно устанавливать патчи безопасности;
- если нет необходимости, ограничить пользователям право монтирования файловых систем FUSE;
- оставлять setuid-разрешение для fusermount3 только при необходимости, в противном случае удалить его;
- отключить функцию unprivileged user namespaces, если она не требуется;
- регулярно отслеживать системные журналы (логи) и записи аудита;
- использовать только файловые системы и модули FUSE из доверенных источников;
- строго соблюдать принцип минимальных привилегий (Least Privilege) на многопользовательских серверах.
Заключение
Уязвимость CVE-2026-31694 еще раз продемонстрировала, как, казалось бы, незначительная ошибка управления памятью в подсистеме FUSE ядра Linux может превратиться в серьезную атаку с повышением привилегий (Privilege Escalation).
Хотя уязвимость не эксплуатируется удаленно, злоумышленник, имеющий доступ к системе с правами обычного пользователя, может использовать ее для получения прав root в короткий промежуток времени. Поэтому администраторам Linux-серверов и рабочих станций важно пересмотреть использование FUSE-сервисов, своевременно устанавливать обновления безопасности и максимально ограничивать привилегии пользователей.
Одними из наиболее эффективных мер защиты в кибербезопасности являются регулярное обновление операционной системы и ее компонентов, соблюдение принципа минимальных привилегий и постоянный мониторинг активности системы.



