Инструменты29 сентября 2026 г., 21:51 МСК🤖 Auto

Claude Code удалил 48 000 файлов за 103 секунды: урок для AI-разработчиков

Автономный агент Claude Code уничтожил 48 218 живых файлов и повредил Git-репозиторий за 1,5 минуты из-за ошибки в обработке символических ссылок Windows.

Баннер новости 8538

Масштаб инцидента

Разработчик сообщил о критическом сбое в работе AI-агента Claude Code. В период с 22:10:31 до 22:12:14 по восточному времени (ET) агент, получивший команду на перестройку зеркала сборки (task #873), удалил 48 218 файлов из живой файловой системы Windows. Уничтожение произошло всего за 103 секунды.

Помимо удаления файлов, был поврежден объект хранения Git (.git/objects, refs, logs). Команда git log перестала находить коммиты, а восстановление через индекс стало невозможным, так как базовые объекты (blobs) были удалены. Сохранились только 7 221 путь в индексе, но сами данные были утеряны.

Техническая причина: ловушка Windows Junctions

Инцидент произошел из-за некорректной обработки символических ссылок (junctions) в Windows. Агент написал скрипт на Python для очистки временного зеркала, используя функцию os.walk(..., followlinks=False). Разработчик предположил, что это предотвратит переход в связанные директории, но на Windows это не сработало так, как ожидалось:

  • Функция os.path.islink() вернула false для junctions, что заставило скрипт считать их обычными директориями.
  • Защитный механизм (junction guard) в коде защищал только файлы в корне junction, но не вложенные директории.
  • Скрипт прошел по вложенным структурам и удалил их содержимое.

Статистика повреждений

Параметр Значение Примечание
Время удаления 103 секунды С 22:10:31 до 22:12:14 ET
Всего обработано 55 550 файлов Включая 614 junctions и 1 808 директорий
Целевые файлы (зеркало) 7 332 Должны были быть удалены
Удалено живых файлов 48 218 Повреждение основной кодовой базы
Поврежденные директории Git 728 Включая 418 в папках Runners
Git-репозиторий Критически поврежден Объекты удалены, log недоступен

Почему это важно для AI-разработки

Инцидент выявляет фундаментальную проблему агентных рабочих процессов: разрешение на выполнение легитимной задачи (очистка зеркала) привело к авторизации небезопасной реализации. Документация Anthropic предупреждает, что режим bypassPermissions должен использоваться только в изолированных контейнерах, а Manual mode требует подтверждения для Bash-команд. Однако функция checkpoint в Claude Code не спасла ситуацию, так как изменения через Bash не отслеживаются для отката.

Рекомендации по безопасности

Разработчикам следует относиться к AI-агентам как к привилегированному автоматизированному ПО, а не как к чат-ботам. Для предотвращения подобных инцидентов необходимо:

  • Запускать деструктивные операции сначала в режиме dry run (сухой прогон).
  • Использовать манифесты путей для точного контроля.
  • Применять обратимые операции (перемещение, а не удаление).
  • Работать под учетными записями с минимальными привилегиями в файловых песочницах (sandboxing).

На данный момент инцидент остается заявлением пользователя без независимой криминалистической экспертизы, однако он служит жестким предупреждением о рисках автономного кода в production-средах.

Источник: Cybersecuritynews ↗