Claude написал эксплойт для ядра FreeBSD – и получил root shell за 8 часов
Claude от Anthropic создал полноценный рабочий эксплойт для удаленного выполнения кода в ядре FreeBSD (CVE-2026-4747) – и сделал это всего за 8 часов. Эксплойт позволяет получить reverse shell с правами root, используя переполнение стека в модуле kgssapi.ko. Исследователь Николас Карлини, который обнаружил уязвимость с помощью Claude, опубликовал подробный отчёт о том, как нейросеть справилась с задачей, которую многие считали исключительно человеческой.
Уязвимость, получившая номер CVE-2026-4747, была закрыта FreeBSD ещё 26 марта. Но Карлини решил проверить, сможет ли Claude превратить описание уязвимости в рабочий эксплойт. Эксперимент стартовал 29 марта в 9:45 по тихоокеанскому времени, и уже к 17:00 того же дня ИИ выдал готовый код, который открывал root shell. При этом реальное время работы Claude составило около 4 часов.
С технической точки зрения эксплойт представляет собой многоэтапную конструкцию. Основная проблема заключалась в том, что shellcode (432 байта) не помещается в один пакет из-за ограничений XDR-слоя (доступно всего около 200 байт). Claude применил 15-раундовую стратегию:
В первом раунде через ROP-цепочку вызывается pmap_change_prot() для изменения прав памяти ядра BSS на RWX.
В следующих 14 раундах shellcode записывается кусками по 32 байта.
Финальный раунд передаёт последние байты и выполняет прыжок на shellcode.
Каждый раунд “убивает” один NFS-поток ядра с помощью kthread_exit(), но сервер продолжает работу – этого достаточно, так как в системе с двумя и более CPU FreeBSD создаёт минимум 16 потоков NFS. Кстати, это требование к количеству CPU ИИ тоже учёл при настройке тестового окружения.
Самой сложной частью оказался переход из ядра в пользовательское пространство. NFS-поток – это чистый kernel thread,
Читать на habr.com