КИБЕРБЕЗОПАСНОСТЬ

Claude Code взламывают через «перескажи сайт»

Claude Code удалось обмануть в 60-80% тестов простой просьбой пересказать сайт: prompt injection доводит агент до загрузки и запуска вредоносного кода.

✍️ Редакция iTech News | 29.08.2026 | ⏱ 4 мин | Источник: The Register
🔒

Уязвимость Claude Code оказалась неприятно приземленной: исследователь показал, что агент Anthropic можно увести к выполнению чужого кода простой просьбой «пересказать содержимое сайта». В трех сериях тестов атака срабатывала в 60-80% случаев, и для разработчиков это плохая новость: если coding agent ходит в сеть и умеет дергать shell, prompt injection уже выглядит не академическим трюком, а рабочим вектором атаки.

Об этом сообщает The Register со ссылкой на исследователя Иоганна Рехбергера, более известного в ИБ-кругах как wunderwuzzi. Он разобрал сценарий для Claude Code с моделью Opus 5 в режиме Auto Mode, который с середины августа 2026 года стал настройкой по умолчанию. Суть атаки проста и от этого только хуже: пользователю достаточно попросить агента суммировать содержимое вредоносного сайта, замаскированного под безобидный архив записей из блокнотов.

Дальше начинается цепочка, в которой почти каждый отдельный шаг выглядит буднично. Claude сначала пытается получить страницу через инструмент WebFetch, но запрос возвращает ошибку 415 Unsupported Media Type. После этого агент сам решает обратиться к сайту напрямую через Bash-вызов с curl. Сервер отвечает редиректом 303 и отдает ZIP-архив. Внутри лежат вроде бы невинные файлы: README, метаданные каталога, семь JSON-записей в Base85/zlib и бинарник decoder-darwin для macOS. Там же находится отравленный файл struct.py, и именно он становится ключом к атаке.

На этом месте срабатывает ирония, которую любят исследователи безопасности и ненавидят разработчики защитных механизмов. Claude Code, следуя своим ограничениям, отказывается запускать присланный бинарник-декодер. Казалось бы, защита сработала. Но именно это решение, по словам Рехбергера, и открывает путь к компрометации: агент пишет собственный декодер на Python. Новый код импортирует модуль base64, а дальше используется классический прием module shadowing. Если в локальной директории лежит файл с тем же именем, что и стандартный модуль Python, интерпретатор может подхватить его вместо системной библиотеки. В данном случае base64 импортирует легитимный struct, но рядом уже лежит подмененный struct.py из вредоносного архива.

Исследователь отдельно отметил еще одну деталь, которая звучит как короткая сводка о состоянии индустрии: для обфускации вредоносного struct.py он использовал ChatGPT, чтобы обойти защитные фильтры Claude. После этого код запускал отдельный Python-процесс, скачивал удаленную нагрузку и выполнял ее. В демонстрации полезная нагрузка всего лишь открывала калькулятор, но это тот случай, когда никто не делает вид, будто на этом бы остановился реальный злоумышленник. Сам факт, что уязвимость Claude Code доводит цепочку до исполнения удаленного кода, для enterprise-среды уже достаточен.

Есть и более неприятный вариант. Вместо банального запуска команды вредоносный struct.py может поднять второй, скрытый экземпляр Claude Code через вызов claude -p. То есть prompt injection здесь используется не только для RCE, но и для создания нового агента внутри уже скомпрометированного окружения. По словам Рехбергера, такой «дочерний» Claude получал собственный доступ к инструментам и контексту. В тестах он выполнял базовую разведку через whoami, uname и id, открывал калькулятор и записывал файлы в домашнюю директорию пользователя. Если перевести это с языка эффектных демо на язык эксплуатации, получается неприятная картина: один агент может стать точкой входа для второго, уже работающего тише и глубже в системе.

По цифрам картина не катастрофическая, но достаточно стабильная, чтобы не отмахнуться. Исследователь протестировал три варианта атаки по пять запусков каждый и получил успешность от 60% до 80%. Он отдельно оговорил, что выборка небольшая и не претендует на исчерпывающую статистику. Но для мотивированного атакующего этого более чем достаточно: когда exploit проходит хотя бы в половине случаев без сложной социальной инженерии, его начинают воспринимать как инструмент, а не как лабораторный фокус. Особенно если речь идет про среды, где coding agent работает с репозиторием, сетью, локальными файлами и командной строкой.

Реакция Anthropic, если верить пересказу The Register и словам самого исследователя, тоже показательна. Компания якобы не стала спорить по существу и свела ответ к формуле «поведение соответствует дизайну». В интерпретации Рехбергера это означает следующее: Auto Mode задуман как функция удобства, а не как граница безопасности; встроенный классификатор действует по принципу best effort и не рассчитан на упорные цепочки prompt injection, где каждый отдельный шаг выглядит безобидно. Иными словами, защита не обещает остановить настойчивого противника, а реальной границей остаются изоляция ОС, sandbox и контроль сетевого трафика. Для ИТ-команд это, пожалуй, главный практический вывод. Если агентные IDE и coding assistants уже оказались в пайплайне разработки, относиться к ним как к «умному autocomplete» больше нельзя. Уязвимость Claude Code показывает, что такие инструменты надо запускать в песочнице, ограничивать по egress, отделять от чувствительных секретов и перестать верить, что отказ от одного подозрительного действия автоматически делает систему безопасной.

У индустрии теперь довольно неудобный вопрос: если агент умеет читать веб, писать код и исполнять команды, где заканчивается «полезная автономность» и начинается обычный риск удаленного исполнения через криво упакованный контент? Пока ответ выглядит старомодно и оттого надежно: меньше доверия к выводу модели, больше изоляции на уровне среды. Детали демонстрации описаны в материале The Register.

Поделиться: Telegram X LinkedIn