В релизе Linux под индексом 4.4 появилась уязвимость, используя которую злоумышленники могут получить доступ к привилегиям с уровнем администратора. Ее номер CVE-2015-8660. Главной причиной уязвимости является использование user namespaces инфраструктурой OverlayFS.
Благодаря использованию пространств имен (user namespaces) в системе Линукс можно создавать изолированное окружение, в котором можно использовать абсолютно любой id пользователя, естественно, и root с id = 0. Этот функционал обеспечивает возможность создания виртуальных контейнеров, и абстрагируясь от реальных системных идентификаторов использовать в виртуальном один и тот же id в разных окружениях.
[ads]
Этим же способом можно решить проблему монтирования файловых систем без доступа от администратора.
Итак, в чем же проблема? Есть возможность создать виртуального юзера в изолированном контейнере, который получит права администратора. Используя ошибку OverlayFS, злоумышленник при изменении привелегий в виртуальном окружении, мог создать файл с suid-битом, доступ к которому мог осуществляться от пользователя уже в настоящем окружении. Это приводит к возможности повышения прав до root в реальной системе.
Начиная с ядра 3.18 и до версии 4.4 ошибка была актуальной. Большинство систем уже получили необходимые патчи, и рекомендованы к обновлению юзерами.
Отметим, что данная ошибка может быть использована при работе и некоторых других модулей системы. Чтобы проверить, включена ли возможность на вашей системе, введите в терминале:
ls /proc/self/ns|grep user
если отключена — вы получите пустой вывод.
При сборке ядра этот функционал отключается опцией CONFIG_USER_NS=n. Однако, не спешите это делать, так как данная опция может повлиять на стабильность системы. Лучше подождите патчи для своей системы и примените их.
$ ls /proc/self/ns|grep user
user
и что, не понял?