Недавно исправленная уязвимость повышения привилегий в
Linux теперь имеет общедоступный PoC, позволяющий локальным злоумышленникам получить права root в системах
Arch Linux.
Уязвимость,
получившая название
PinTheft от команды безопасности
V12 и до сих пор ожидающая присвоения идентификатора CVE, затрагивает протокол
RDS (Reliable Datagram Sockets) ядра
Linux и была исправлена в начале этого месяца.
PinTheft - это эксплойт для повышения локальных привилегий в
Linux, использующий механизм двойного освобождения памяти с нулевым копированием в
RDS, который может быть преобразован в перезапись кэша страниц с помощью фиксированных буферов io_uring.
Ошибка заключалась в механизме отправки нулевого копирования
RDS. Функция rds_message_zcopy_from_user() закрепляет страницы пользователя по одной.
Если последующая страница завершается с ошибкой, механизм обработки ошибок удаляет уже закрепленные страницы, и последующая очистка сообщений
RDS снова удаляет их, поскольку записи в списке разброса и счетчик записей остаются активными после очистки уведомления о нулевом копировании. Каждая неудачная отправка нулевого копирования может украсть одну ссылку с первой страницы.
В версии
V12 также был выпущен эксплойт PoC, который крадет ссылки на FOLL_PIN до тех пор, пока io_uring не останется с украденным указателем страницы, что позволяет ему получить корневую оболочку.
Однако, помимо загрузки модуля
RDS в целевую систему, для успешной эксплуатации PinTheft также требуются определенные
условия, включая включение API ввода-вывода
Linux io_uring, читаемый исполняемый файл с правами SUID-root и поддержку x86_64 для включенной полезной нагрузки.
Это значительно ограничивает поверхность атаки, при этом в версии
V12 указано, что модуль
RDS включен по умолчанию только в
Arch Linux из наиболее распространенных дистрибутивов
Linux.
Пользователям
Linux, использующим затронутые дистрибутивы, рекомендуется как можно скорее установить последние обновления ядра либо использовать меры для блокировки попыток эксплуатации уязвимости.
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram