TGViewer
Spring АйО Spring АйО @spring_aio · 10.9K subscribers
Post #1125 6.33K
🤖 AI-агент просил разрешить правку файла проекта. А сам добавил SSH-ключ злоумышленника

Ситуация. Вы клонируете репозиторий, просите 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.

Они нас погубят... 🙃
  • 🤯 49
  • 👍 16
  • 😁 10
  • ❤ 5
More from @spring_aio
  1. Sep 24, 2026🔥 Запись открытой лекции уже доступна Вчера прошла первая открытая лекция курса «Java в п…
  2. Sep 23, 2026🔥 УЖЕ СЕГОДНЯ В 20:00 — БЕСПЛАТНАЯ ЛЕКЦИЯ Друзья, начинаем через 15 минут! ❓ Тема: «Когда…
  3. Sep 22, 2026🆕 Вышел Opus 5.5. Уровень Fable за меньшие деньги Anthropic представила Claude Opus 5.5.…
  4. Sep 22, 2026🔥 УЖЕ ЗАВТРА — ОТКРЫТАЯ ЛЕКЦИЯ ДЛЯ ВСЕХ Завтра, 23 сентября встречаемся на первой ОТКРЫТО…
  5. Sep 22, 2026⚡️⚡️Joker 2026: что происходит с профессией разработчика Индустрия разработки проходит чер…
  6. Sep 21, 2026🧑‍💻 Трагедия версионирования ПО Мы привыкли читать версии по SemVer. Появились несовмест…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →