Ситуация. Вы клонируете репозиторий, просите AI-агента настроить проект и видите обычное подтверждение:
Ситуация. Вы клонируете репозиторий, просите AI-агента настроить проект и видите обычное подтверждение:
Разрешить изменение project_settings.json?
Нажимаете «Разрешить». Только агент записывает данные не в настройки проекта, а в ~/.ssh/authorized_keys. Если SSH доступен извне, добавленный ключ может открыть злоумышленнику вход на компьютер без пароля.
Исследователи Wiz назвали эту атаку GhostApproval и воспроизвели её сразу в шести AI-инструментах:
– Amazon Q Developer
– Claude Code
– Augment
– Cursor
– Google Antigravity
– Windsurf
Схема-то простая и рабочая) Вредоносный репозиторий содержит чисто символическую ссылку, файловую «переадресацию». Файл выглядит как project_settings.json, но на самом деле ведёт к ~/.ssh/authorized_keys или ~/.zshrc.
README просит агента изменить типа «настройку проекта». Агент выполняет инструкцию, следует по ссылке и пишет уже за пределами репозитория. Ну красота же.
Самое неприятное то, что в в тестах Windsurf и Amazon Q успевали изменить файл ещё до подтверждения пользователя. Augment выполнял чтение и запись вообще без запроса. А в Claude Code агент распознал реальный файл, но человеку всё равно показал безобидное имя project_settings.json.
AWS, Cursor и Google выпустили исправления. В актуальных версиях Claude Code есть предупреждение о таких ссылках. На момент публикации исследования Wiz не получила подтверждения исправлений от Augment и Windsurf.
Мораль сей басни здесь интереснее самой уязвимости: кнопка «Разрешить» не защищает разработчика, если интерфейс показывает ему не то действие, которое действительно выполнит агент.
Поэтому незнакомые репозитории лучше открывать в контейнере или виртуальной машине, а перед запуском агента проверить файловые ссылки командой:
find . -type l -ls
💡 Источники:
– исследование Wiz,
– бюллетень AWS,
– официальное исправление Cursor.
Они нас погубят… 🙃