
11 ноября в реестре Packagist вышла версия 3.14.3 пакета digitalelvis/neuronai-studio, которую CodeScoring относит к вредоносным. Пакет нужен для визуальной сборки ИИ-агентов на Laravel. Команда npm install в каталоге этой версии запускает скрипт для кражи токенов и ключей. Тот же скрипт вредоносной кампании, получивший имя wfx, с 10 ноября внедряли в сценарии автоматической сборки GitHub Actions. К вечеру 12 ноября были найдены следы внедрения в 8 926 репозиториях на GitHub.
Атакующий пользовался украденными токенами GitHub. Сначала он открывал запрос на изменение документации, чтобы проверить доступ к репозиторию. Затем от имени разработчика или бота отправлял коммит под видом обслуживания сборки. В одном из вариантов скрипт получал секреты и переменные, переданные ему из настроек GitHub Actions. Среди них могли быть ключи облачных сервисов и токены для публикации пакетов. После запуска атакующий откатывал коммит и удалял запись о запуске вместе с журналом.
OX Security назвали 3.14.4 исправленной версией NeuronAI Studio. Но на момент 13 ноября эта версия также отмечена как вредоносная в базе знаний CodeScoring и в реестре Packagist. Те же отметки есть у 3.14.2 и 3.14.3. Перед обновлением обязательно проверьте статус выбранной версии в реестре.
Чтобы обнаружить потенциальную компрометацию, необходимо проверить историю коммитов и запусков GitHub Actions с 10 ноября. Среди признаков атаки можно увидеть ветки под названием wfx-docs, коммиты ci: refresh build cache и пропуски в нумерации запусков рядом с подозрительными изменениями. При возможном запуске вредоноса отзовите токены и замените ключи, к которым у него был доступ. Проверьте и настройки доступа в облаке. Скрипт также пытался менять правила доверия для ролей AWS и добавлять учётные данные wfx-ci-* в Azure.
Отдельно стоит проверить, собирал ли кто-нибудь его JavaScript-часть на рабочей машине или в CI. В опубликованных версиях модулей Go gocurl и redock специалисты SafeDep также нашли вредоносные сценарии GitHub Actions.
Блокирующие политики CodeScoring с условием «Зависимость опасна» останавливают загрузку этого и других известных вредоносных пакетов в модуле CodeScoring.OSA и сборку проекта в модуле CodeScoring.SCA.
