Нарушение цепочки поставок Nx (S1ngularity): вредоносные пакеты Nx опубликованы в npm с помощью украденного токена публикации

Node.jsnpmБезопасностьDevOps

Основное обновление

26 августа 2025 года злоумышленники опубликовали вредоносные версии нескольких пакетов Nx в npm на протяжении примерно четырех часов, воспользовавшись инъекцией рабочего процесса GitHub Actions для кражи токена публикации NPM. Вредоносные пакеты содержали код постинсталляции, который сканировал локальные машины на наличие секретов и использовал локальные AI CLI (сообщенные примеры: Claude, Gemini) для помощи в идентификации файлов для эксфиляции, затем загружал результаты в публичные репозитории GitHub. Nx удалил зараженные пакеты, отозвал токены, опубликовал подробный отчет о происшествии и рекомендации, а также перевел публикацию в npm Trusted Publishers / OIDC с ручными одобрениями.

Почему это важно

Это серьезное нарушение цепочки поставок с прямыми последствиями для разработчиков: Nx широко используется в JavaScript/TypeScript монорепозиториях и CI-пайплайнах, поэтому короткий период наличия зараженных пакетов увеличил риск на многих машинах разработчиков и CI-системах. Инцидент демонстрирует три связанных режима отказа, которые необходимо рассматривать как практические угрозы: небезопасные шаблоны GitHub Actions (pull_request_target плюс несанитизированный ввод и чрезмерно широкие разрешения рабочего процесса), долгоживущие/чрезмерно привилегированные учетные данные для публикации и вредоносное ПО, использующее локальные инструменты AI для разработчиков в качестве части своего инструментария для разведки/эксфиляции.

Для практиков немедленные операционные действия просты и срочны: подтвердите, установили ли вы какие-либо из затронутых версий пакетов Nx, и рассматривайте любую систему с этими версиями как потенциально скомпрометированную; измените и отозовите любые открытые токены и учетные данные (GitHub и npm), проверьте журналы аудита/безопасности GitHub на наличие неожиданных репозиториев или активности CLI, очистите кэши пакетов и NPX, и обновитесь до исправленных релизов Nx. С точки зрения CI/DevOps устраните шаблоны, которые позволяют этому вектору: избегайте pull_request_target для ненадежных вводов, минимизируйте разрешения рабочего процесса (по умолчанию используйте токены только для чтения), удалите workflow_dispatch из публикационных пайплайнов, которые принимают ненадежные триггеры, предпочитайте OIDC и краткосрочные учетные данные для публикации в реестре, требуйте явных ручных одобрений для релизов, происходящих из форков или от внешних участников, и добавьте проверки происхождения для опубликованных артефактов. Наконец, рассматривайте локальные среды разработчиков как потенциальные цели эксфиляции: ограничьте открытые секреты на машинах разработчиков, используйте менеджеры учетных данных и следите за необычной исходящей активностью или недавно созданными публичными репозиториями, которые могут содержать утечку данных.

Этот инцидент напоминает о том, что гигиена цепочки поставок требует как безопасных CI-шаблонов, так и быстрых планов действий при инцидентах; просто обновление инструментов недостаточно, если потоки публикации и разрешения рабочего процесса не заблокированы, а сроки действия токенов не ограничены.

Источник

Читать дальше