ИИ-агент Codex достиг root-доступа на Samsung Smart TV благодаря уязвимости в драйвере Novatek
Исследователи из стартапа Calif совместно с OpenAI провели эксперимент, в ходе которого ИИ-агент Codex прошёл путь от браузерного шелла до root-пользователя (uid=0) на Samsung Smart TV. Codex обнаружил уязвимость в драйвере от тайваньского чипмейкера Novatek, создал рабочий эксплойт и подтвердил успешное получение прав сообщением Worked. Подробный разбор и доказательство концепции опубликованы на GitHub.
Для начала исследователи самостоятельно получили первичный доступ — выполнение кода в браузерном приложении — и предоставили агенту исходники прошивки Samsung KantS2 (выпуск февраля 2020 года, ядро Linux 4.1.10), инструменты для компиляции ARM-бинарников и обёртку, позволяющую обходить механизм Samsung UEP, который блокирует запуск неподписанных программ. Задача была открыта: найти уязвимость и повысить привилегии до root через драйвер или известные CVE.
ИИ просканировал устройство и заметил, что драйверы Novatek имеют device-ноды с правами 0666, позволяя любому процессу доступ к физической памяти. В драйвере ntksys Codex выявил ошибку: он принимал физический адрес и размер от пользовательского процесса, сохранял их в таблицу и отображал память в адресное пространство через mmap без проверки принадлежности памяти ядру.
Создав цепочку эксплойта, Codex сначала получил адрес допустимого DMA-буфера через соседний драйвер, подтвердив возможность чтения и записи в произвольную физическую память обычным пользователем. Затем он сфокусировался на структуре cred в памяти, отвечающей за идентификаторы пользователя и группы, и обнулил эти поля. В результате шелл получил root-доступ без сложных манипуляций с выполнением кода в ядре. Отмечается, что агент выбрал этот метод самостоятельно, без подсказок.
Авторы отчёта в разделе The Bromance описали диалог с Codex, включающий реплики вроде «бро, этот IP — не телевизор, а сервер с шеллом» и «бро, что ты натворил, телевизор завис». Они подчеркнули, что Codex не обходится одним промптом и требует ручной настройки, но полностью прошёл цикл от анализа кода до работающего эксплойта на реальном устройстве. Следующий этап — эксперимент с полностью автономным агентом, который сможет самостоятельно найти первичный доступ.
P.S. Поддержать меня можно подпиской на канал «сбежавшая нейросеть», где я рассказываю о творческих аспектах ИИ.
