Пакет npm под видом проверки Twilio собирал учетные данные

Исследователи ReversingLabs обнаружили в реестре npm вредоносный пакет tw-pkgprobe-7731, который выдавал себя за авторизованный инструмент для программы bug bounty Twilio. Пакет загрузил аккаунт twdepprobe7731 в середине августа 2026 года; за один день примерно за 45 минут были опубликованы 11 версий.
Комментарии в первой версии называли код «исследовательским зондом» для HackerOne-программы Twilio. В них утверждалось, что пакет запускается только в песочнице serverless-упаковщика Twilio, собирает локальный контекст и не выполняет разрушительных действий.
Проверка окружения и сбор секретов
При запуске tw-pkgprobe-7731 сначала проверял, находится ли он в среде разработчика Twilio. Если проверка не проходила, выполнение прекращалось. В подходящем окружении код извлекал переменные окружения, сведения о точках монтирования, временных каталогах и конфигурации, после чего отправлял собранные данные через вебхук.
Версии 1.0.1, 1.0.2 и 1.0.3 были нацелены на разработчиков, работающих с API Twilio. Они искали каталоги, связанные с конкретными идентификаторами учетных записей Twilio — SID. При наличии каталога с определенным SID пакет не предпринимал действий. В других случаях при обнаружении целевых папок он сканировал установленные npm-зависимости и node_modules, а затем внедрял собственный PoC-пакет, создавая файлы package.json и index.js.
Версия с доступом к Twilio
В версии 1.0.4 появилась наиболее опасная функция: извлечение значений process.env.ACCOUNT_SID и process.env.AUTH_TOKEN. Эти реквизиты позволяют скомпрометировать учетные данные Twilio и потенциально использовать их для авторизации биллинга и запуска коммуникаций.
Последние три версии — 1.0.8, 1.1.0 и 1.1.1 — вернулись к базовому профилю первой версии и не содержали добавленных ранее вредоносных возможностей. Две финальные версии также собирали OSINT-данные: обращались к связанным с Twilio хостам, включая support-api.us1.twilio.com, kafka-ui.au1.twilio.com и litellm.ai-services.corp.twilio.com, а также запрашивали метаданные AWS по адресу 169.254.169.254/latest/meta-data/.
Почему это не похоже на bug bounty
ReversingLabs отмечает, что действия пакета не соответствовали правилам поиска уязвимостей Twilio, опубликованным на HackerOne. По оценке исследователей, это указывает на вредоносное назначение публикаций, хотя конечная цель кампании остается неясной.
Авторы не использовали обфускацию, тайпсквоттинг или правдоподобный аккаунт издателя, однако маскировали опасные функции нейтральными комментариями и кодом. Для бизнеса это повод контролировать не только название новой зависимости, но и конкретную версию: перед установкой стоит проверять происхождение пакета, его изменения и доступ к переменным окружения, а после запуска непроверенного кода — заменять затронутые секреты API.

