Утверждения подтверждены публикацией The Register, но не первоисточником.

The Register опубликовал разбор демонстрации атаки на Claude Code и мер защиты. Исследователь показал, что Claude Code с Opus 5 в Auto Mode можно заставить выполнить контролируемый атакующим код запросом на пересказ сайта.

WebFetch получает от вредоносного сайта ответ 415, после чего модель сама обращается к нему через Bash-вызов curl. Сайт перенаправляет запрос кодом 303 на вредоносный ZIP-архив с отравленным файлом struct.py.

Claude отказывается запускать вложенный декодер и пишет собственный. Этот декодер импортирует base64, который импортирует struct, а локальный вредоносный struct.py затеняет стандартный модуль.

По словам Ребергера, классификатор Auto Mode не рассчитан на целенаправленные цепочки prompt injection из отдельных безобидно выглядящих шагов. Он считает изоляцию ОС и контроль исходящего сетевого трафика реальной границей защиты и рекомендует запускать coding-агенты в песочнице.

Проверка утверждений:

  • The Register опубликовал материал типа incident о демонстрации исследователем атаки на Claude Code; он даёт читателю разбор цепочки выполнения кода и практических мер защиты. (подтверждено только публикацией-переносчиком: доказательство; «Researcher shows how Claude Code can be tricked simply by asking it to summarize a website»)
  • По описанию The Register, Claude Code с Opus 5 в Auto Mode можно заставить выполнить контролируемый атакующим код простым запросом на пересказ сайта. (подтверждено только публикацией-переносчиком: доказательство; «Anthropic’s Claude Code running Opus 5 in Auto Mode can be tricked into executing attacker-controlled code simply by asking the coding agent to summarize a website.»)
  • Цепочка начинается с вредоносного сайта: WebFetch получает ответ 415, после чего модель сама обращается к сайту через Bash-вызов curl. (подтверждено только публикацией-переносчиком: доказательство; «The WebFetch request fails, returning a 415 Unsupported Media Type response, so the model decides to access the website directly by issuing a Bash tool call with curl.»)
  • Сайт отвечает перенаправлением 303 на вредоносный ZIP-архив, содержащий метаданные, README, семь записей notebook в Base85/zlib, бинарник декодера для macOS и отравленный файл struct.py. (подтверждено только публикацией-переносчиком: доказательство; «This archive contains seemingly harmless files including catalog metadata, a README file, seven Base85/zlib-encoded JSON notebook records, a macOS decoder-darwin binary – plus a poisoned Python file named struct.py .»)
  • Claude отказывается запускать вложенный декодер и вместо этого пишет собственный. (подтверждено только публикацией-переносчиком: доказательство; «Instead of using the supplied binary, the AI decides to write its own decoder.»)
  • Эксплуатация использует подмену Python-модуля: написанный декодер импортирует base64, тот импортирует struct, а локальный вредоносный struct.py затеняет стандартный модуль. (подтверждено только публикацией-переносчиком: доказательство; «The new decoder imports base64 , and from here the attack relies on Python module shadowing to trick the model into running the malicious struct.py code.»)
  • В демонстрации вредоносный struct.py запускал отдельный процесс Python, который загружал и исполнял удалённую нагрузку с callback к командно-контрольному серверу и открытием Calculator. (подтверждено только публикацией-переносчиком: доказательство; «Rehberger says he used ChatGPT to obfuscate the malicious struct.py code to bypass Claude’s safety controls, and this successfully launches a separate Python process to download and execute a remote payload – in this case a command-and-control callback, which in turn opens Calculator.»)
  • В другом варианте struct.py запускал второй безголовый экземпляр Claude Code через claude -p, позволяя создать нового агента с собственным доступом к инструментам и контекстом. (подтверждено только публикацией-переносчиком: доказательство; «In another attack scenario, struct.py launches a second, headless Claude Code via claude -p , meaning this prompt injection can be used not just to remotely execute code, but rather to create a whole new agent.»)
  • В трёх вариантах, проверенных по пять раз каждый, Ребергер сообщил об успешности от 60% до 80%, отдельно оговорив малый размер выборки. (подтверждено только публикацией-переносчиком: доказательство; «Across three variants tested five times each, which Rehberger noted were small samples, he reported success rates between 60 percent and 80 percent.»)
  • По словам Ребергера, классификатор Auto Mode не рассчитан на целенаправленные цепочки prompt injection из отдельных безобидно выглядящих шагов; реальная граница защиты — изоляция ОС и контроль исходящего сетевого трафика. (подтверждено только публикацией-переносчиком: доказательство; «According to Rehberger, the classifier isn’t built to stop determined prompt-injection chains made up of individually benign-looking steps, and the real boundary is OS isolation and network egress control.»)
  • Практический вывод Ребергера — запускать Claude Code и другие coding-агенты в песочнице. (подтверждено только публикацией-переносчиком: доказательство; «The key takeaway, according to Rehberger, is to run this and other coding agents in a sandbox.»)

Публикации:

оценка 72.5 · тип incident · ревизия 1 · истории st-l3i0p1