
Что произошло
26 августа 2025 года в npm были опубликованы вредоносные версии nx и связанных пакетов, которые оставались доступными около четырёх часов. Скрипт, запускавшийся при установке, искал на машинах Linux и macOS токены GitHub и npm, SSH-ключи, ключи API и криптокошельки. При наличии локальных AI-утилит командной строки скрипт пытался задействовать их для поиска чувствительных файлов. Найденное выгружалось в публичные репозитории GitHub, созданные от имени жертвы. По данным GitGuardian, приведённым The Hacker News, утекло 2349 уникальных секретов, примерно у трети заражённых систем был установлен хотя бы один AI-клиент. Во второй волне с помощью украденных токенов были раскрыты более 3000 репозиториев более чем 190 пользователей и организаций.
Где нарушилась защита
Первая граница доверия нарушилась в CI/CD: рабочий процесс GitHub Actions обрабатывал непроверенные данные из pull request и имел права на запись, что позволило извлечь токен публикации. Вторая — на рабочих станциях: AI-утилиты разработчика с правами на чтение файлов и выполнение команд были запущены вредоносным кодом в режиме, где они не спрашивали подтверждения. Агент, созданный помогать разработчику, превратился в инструмент разведки для атакующего.
Последствия
- Утечка 2349 уникальных секретов: токенов GitHub, ключей Google AI, OpenAI, AWS, Anthropic и других сервисов
- Публикация приватных данных и репозиториев жертв в открытый доступ на GitHub
- Вторая волна с использованием украденных токенов затронула более 3000 репозиториев
Реакция
npm отозвал токены и удалил пакеты, GitHub удалил репозитории с утёкшими данными. Nx перешёл на доверенную публикацию через OIDC, ввёл обязательное подтверждение релизов вторым фактором и ограничил запуск конвейеров для внешних участников.
Уроки для бизнеса
- AI-агенты на рабочих станциях разработчиков расширяют возможности не только сотрудника, но и вредоносного кода на той же машине
- Режимы работы AI-утилит без подтверждения действий опасны в средах с доступом к секретам
- Ошибки конфигурации GitHub Actions остаются одним из главных путей компрометации пакетов
- Секреты на машинах разработчиков нужно считать скомпрометированными при любом подозрении на заражённую зависимость
Меры, которые предотвратили бы инцидент
- Запрет или контроль автоматического выполнения скриптов установки пакетов в корпоративной среде
- Политика использования AI-утилит командной строки: запрет режимов без подтверждения, изоляция в контейнере
- Хранение секретов в менеджере секретов вместо файлов и переменных окружения на рабочих станциях
- Аудит рабочих процессов CI/CD на небезопасную обработку данных из pull request и избыточные права
- Мониторинг создания новых публичных репозиториев от имени сотрудников