libfuse — это эталонная реализация Linux FUSE. Начиная с версии 3.18.0 и до версии 3.18.2 до версии 3.18.2, уязвимость use-after-free в подсистеме io_uring libfuse позволяет локальному злоумышленнику аварийно завершать процессы файловой системы FUSE и потенциально выполнять произвольный код. Когда создание потока io_uring завершается сбоем из-за исчерпания ресурсов (например, cgroup pids.max), fuse_uring_start() освобождает структуру кольцевого пула, но сохраняет висячий указатель в состоянии сеанса, что приводит к использованию после освобождения при завершении сеанса.
Триггер надежен в контейнерных средах, где ограничения cgroup pids.max естественным образом ограничивают создание потоков. Эта проблема исправлена в версии 3.18.2.
Показать оригинальное описание (EN)
libfuse is the reference implementation of the Linux FUSE. From version 3.18.0 to before version 3.18.2, a use-after-free vulnerability in the io_uring subsystem of libfuse allows a local attacker to crash FUSE filesystem processes and potentially execute arbitrary code. When io_uring thread creation fails due to resource exhaustion (e.g., cgroup pids.max), fuse_uring_start() frees the ring pool structure but stores the dangling pointer in the session state, leading to a use-after-free when the session shuts down. The trigger is reliable in containerized environments where cgroup pids.max limits naturally constrain thread creation. This issue has been patched in version 3.18.2.
Характеристики атаки
Последствия
Строка CVSS v3.1