
Взломанный Dirty Pipe (CVE-2022-0847) PoC, который перехватывает SUID-бинарник для запуска оболочки root. (а также пытается восстановить поврежденный бинарник)
Собранный PoC для Dirty Pipe (CVE-2022-0847), который перехватывает SUID-бинарник для получения root-оболочки (и также пытается восстановить повреждённый бинарник).
Была обнаружена ошибка в том, как элемент "flags" структуры нового буфера канала (pipe buffer) не инициализировался должным образом в функциях copy_page_to_iter_pipe и push_pipe в ядре Linux, что могло приводить к наличию устаревших значений. Непривилегированный локальный пользователь может использовать эту ошибку для записи в страницы кэша страниц, подкреплённые файлами, доступными только для чтения, и таким образом повысить свои привилегии в системе.
Новая уязвимость Linux, известная как 'Dirty Pipe', позволяет локальным пользователям получать root-привилегии через общедоступные эксплойты.
Сегодня исследователь безопасности Max Kellermann ответственно раскрыл уязвимость 'Dirty Pipe' и заявил, что она затрагивает ядро Linux 5.8 и более поздние версии, в том числе на устройствах Android.
Уязвимость отслеживается как CVE-2022-0847 и позволяет непривилегированному пользователю внедрять и перезаписывать данные в файлах, доступных только для чтения, включая SUID-процессы, работающие от root.
Келлерман обнаружил ошибку, отслеживая баг, который повреждал журналы доступа веб-сервера для одного из его клиентов.
Затем Bl4sty написал другую версию. Вместо перезаписи файла, такого как /etc/passwd, она перезаписывает заданный пользователем SUID-бинарник (например, /bin/su), внедряя шеллкод, который затем выполняется с привилегиями привилегированного пользователя (то есть root).
gcc dirtypipez.c -o exploit
./exploit /bin/su