Недавно исправленная уязвимость повышения привилегий в 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, использующим затронутые дистрибутивы, рекомендуется как можно скорее установить последние обновления ядра либо использовать меры для блокировки попыток эксплуатации уязвимости.
GitHub
pocs/pintheft at 09e835b587bf71249775654061ae4c79e92cf430 · v12-security/pocs
poc it like it's hot. Contribute to v12-security/pocs development by creating an account on GitHub.
37 6.6K

Обсуждение 0

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram