Спецпроекты

«Дырка» в Sudo10 лет позволяет кому попало получать права суперпользователя в Linux

Безопасность Администратору Стратегия безопасности Пользователю Техника
Проблема, которая 10 лет оставалась незамеченной, позволяла повышать привилегии до уровня суперпользователя в нескольких дистрибутивах Linux, поддерживающих Sudo. Другие Unix-образные системы также могли быть под угрозой.

Повысьте мне привилегии

В Linux исправлена опасная уязвимость, которая позволяла локальным пользователям получать root-привилегии.

Уязвимость, в сущности, позволяла получать такие привилегии в любой UNIX-образной системе. Sudo - это программа, которая позволяет администраторам систем выдавать root-доступ рядовым пользователям, чьи имена прописаны в файле sudoers; все их действия сохраняются в специальных логах.

Такие пользователи могут использовать sudo для запуска некоторого набора команд с привилегиями суперпользователя - если у них есть на то разрешение от администратора или если они знают пароль root-пользователя.

Однако в январе эксперт по информационной безопасности компании Qualys обнаружил уязвимость под индексом CVE-2021-3156, которой было присвоено собственное имя - Baron Samedit (от Baron Samedi, Барона Субботы, одного из главных персонажей пантеона религии вуду).

Любопытно, что уязвимость появилась в Sudo очень давно, в июле 2011 г. (после обновления 8255ed69). Она затрагивала все стабильные версии Sudo от 1.9.0 до 1.9.5p1, а также устаревшие варианты - от 1.8.2 до 1.8.31p2.

tuxhacker500.jpg
Незаметная проблема в Sudo 10 лет позволяла повышать привилегии до уровня суперпользователя в нескольких дистрибутивах Linux

«Это уязвимость heap overflow - переполнения буфера в «куче», то есть, регионе динамически распределяемой памяти, - поясняет Михаил Зайцев, эксперт по информационной безопасности компании SEC Consult Services. - Такая ошибка подразумевает возможность записи данных за пределами выделенной области памяти, что приводит к некорректной работе программы. Sudo при запуске некорректно обрабатывала обратную косую черту в аргументах, что приводило к переполнению буфера. Довольно странно, что за десять лет существования этой уязвимости никто её не обнаружил: при всей её опасности ошибка весьма тривиальная, а код Sudo открыт всем желающим - и в нём уже находили критические уязвимости».

Эксплуатировать этот баг может пользователь, и не входящий в список sudoers и не знающий root-пароля.

Демонстрация возможностей

Эксперты Qualys написали сразу три демонстрационных эксплойта, которые позволили получать root-права сразу в нескольких дистрибутивах Linux, в том числе Debian 10 (Sudo 1.8.27), Ubuntu 20.04 (Sudo 1.8.31) и Fedora 33 (Sudo 1.9.2).

Вполне вероятно, что были уязвимы и другие Unix-образные системы с поддержкой Sudo.

Ввиду серьёзности проблемы эксперты опубликовали информацию о ней только после выхода соответствующих патчей.

Проблема устранена в версии 1.9.5p2. Всем пользователям данной программы настоятельно рекомендовано установить обновление как можно скорее.