
Local privilege escalation PoC for Linux kernel CVE-2022-1015
Этот репозиторий содержит PoC для локального повышения привилегий CVE-2022-1015, ошибки в компоненте nf_tables ядра Linux, которую я нашел. Вы можете прочитать подробный анализ этой уязвимости и стратегию эксплуатации в моем блоге.
Прямо сейчас эксплойт немного беспорядочный. Извините!
Ядра после коммита 345023b0db31 (v5.12), но до коммита 6e1acfa387b9 (v5.17) уязвимы.
Этот эксплойт крайне маловероятно, что предоставит root-оболочку для данного уязвимого ядра. Вам придется экспериментировать с расположением цепных хуков (вход vs выход и т.д.), смещениями утечки адреса nft_bitwise, а также смещениями ROP-гаджетов и символов. Я тестировал на 5.16-rc3+ и мне пришлось серьезно изменить свой эксплойт для сборки ядра, скомпилированной с другой версией gcc.
Тем не менее, со всей информацией, приведенной в моем посте в блоге, я думаю, что изменить эксплойт для данного уязвимого ядра должно быть возможно.
Просто выполните make, и в каталоге исходников должен появиться исполняемый файл pwn. Вам понадобятся пакеты разработчика libmnl и libnftnl, а также заголовочные файлы Linux для целевой системы.
Вы можете явно указать заголовочные файлы ядра, например: make CFLAGS="-I/path/to/linux-tree/usr/include".
Этот код распространяется под лицензией Beerware. Я не несу юридической ответственности за все, что вы с ним сделаете.