
Эксплойт для (CVE-2023-0179) Данная уязвимость обозначена как CVE-2023-0179, затрагивает все версии Linux от 5.5 до 6.2-rc3 и была протестирована на версии 6.1.6. Подробности и статья об уязвимости доступны на os-security.
Этот репозиторий содержит эксплойт для недавно обнаруженной мной уязвимости в подсистеме nftables, которой присвоен CVE-2023-0179, затрагивающей все версии Linux с 5.5 по 6.2-rc3, хотя эксплойт тестировался на 6.1.6.
Подробности об уязвимости и описание можно найти на oss-security
Просто выполните команду make needle, чтобы сгенерировать соответствующий исполняемый файл.
Для успешной сборки требуются libmnl и libnftnl:
sudo apt-get install libmnl-dev libnftnl-dev
Эксплойт войдёт в непривилегированное пользовательское и сетевое пространство имён и добавит выражение nft_payload через функцию rule_add_payload, которая при вычислении вызовет переполнение буфера стека и перезапишет регистры.
Затем содержимое извлекается с помощью следующей команды nft:
nft list map netdev mytable myset12
В выводе произойдёт утечка нескольких перемешанных адресов, относящихся к структурам данных ядра, среди которых мы найдём адрес инструкции ядра и указатель regs.
Эксплойт создаёт новую учётную запись пользователя needle:needle с UID 0, злоупотребляя переменной modprobe_path.
Наслаждайтесь правами root.
libnftnl Дэвида Баумана и подробный пост в блоге