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