Компрометированный npm-пакет запускает вредоносный код и собирает учётные данные
28 августа 2026 года внешний пользователь GitHub получил контроль над рабочим процессом выпуска пакета npm @7nohe/openapi-react-query-codegen и опубликовал десять вредоносных версий. Восемь из них относятся к стабильным выпускам, включая версии 0.5.4, 0.5.5, 1.6.3, 1.6.4, 2.2.1, 2.2.2, 3.0.3 и 3.0.4.
Вредоносные версии оставались доступны в npm
Стабильные вредоносные выпуски публиковались с 20:00:43 до 20:20:53 UTC. На момент подачи отчета тег latest в npm по-прежнему указывал на вредоносную версию 3.0.4.
Выпущенные версии выполняли код, контролируемый злоумышленником, во время установки благодаря механизмам жизненного цикла npm. Все затронутые версии, включая 3.0.4, содержали явный хук preinstall. В версии 3.0.4 также обнаружили вредоносное условие в файле binding.gyp, способное обеспечить доступ к функции os.system() в Python.
Признаки вредоносной модификации
Статический анализ выявил несколько компонентов атаки. Среди них код, декодированный с помощью XOR и переданный конструктору Function в JavaScript, команда preinstall и замаскированный путь выполнения в binding.gyp.
Размер версии 0.5.4 увеличился с 41 621 байта примерно до 5,66 МБ. Размеры других вредоносных артефактов составляли от 4,46 МБ до 6,53 МБ.
Полезная нагрузка похищала данные аутентификации
Тестирование во время выполнения показало, что версии 1.6.3, 2.2.1, 3.0.3 и 3.0.4 устанавливали соединения с GitHub и release-assets.githubusercontent.com в процессе установки.
Загруженный payload скачивал и запускал Bun из инфраструктуры релизов GitHub. Исполняемый файл размещался по временному пути, похожему на /tmp/trinnyyyy-*/bun. Развернутый код выполнял следующие действия:
- запускал команду
gh auth tokenдля получения данных аутентификации GitHub; - выполнял
git credential-manager github list --no-ui; - проверял наличие инструментов SSH и SCP;
- перечислял запущенные процессы;
- вызывал shell, использующий временный файл
updater.py; - выполнял зондирование имени хоста метаданных Google Cloud, потенциально нацеленное на облачные учетные данные.
Рекомендации для пользователей
Пользователям не следует устанавливать версию latest пакета или любые затронутые релизы. Если сценарии установки уже выполнялись, систему необходимо изолировать.
Доступные из этой среды учетные данные нужно заменить с отдельной чистой машины. Это касается учетных данных GitHub, Git, SSH и облачных сервисов.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



