Крупная атака на NPM: 16 пакетов React Native для GlueStack скомпрометированы за одну ночь

remote access Trojan

В последние недели наблюдались небольшие атаки на малоиспользуемые пакеты, но вечером 6 июня 2025 года ситуация резко обострилась. Злоумышленники атаковали популярные пакеты с совокупным количеством загрузок более миллиона в неделю.

Описание

В 21:33 по GMT была выпущена версия 0.2.10 пакета @react-native-aria/focus. Последнее обновление этого пакета датировалось октябрем 2023 года, что вызвало подозрения. Анализ показал, что в файл lib/commonjs/index.js была внедрена вредоносная строка, скрытая с помощью пробелов, чтобы избежать обнаружения в редакторах кода.

Раскодированный код оказался знакомым - это тот же бэкдор, который Aikido Security видели в случае с rand-user-agent. Он развертывает удаленный доступ (RAT), позволяя злоумышленникам выполнять команды на зараженных системах, загружать файлы и собирать конфиденциальные данные.

Масштаб атаки

В течение нескольких часов после первой компрометации злоумышленники внедрили бэкдор в 16 пакетов, связанных с React Native и GlueStack. Среди них:

  • @react-native-aria/utils (120 тыс. загрузок в неделю)
  • @react-native-aria/interactions (125 тыс.)
  • @react-native-aria/button (51 тыс.)
  • @gluestack-ui/utils (55 тыс.)

Новые особенности атаки

Хотя основная нагрузка осталась прежней, появились изменения:

  • Новый C2-сервер: Теперь бэкдор использует два сервера управления - 85.239.62[.]36:3306 и новый 136.0.9[.]8:3306. Выбор зависит от версии вредоносного кода.
  • Дополнительные команды:
    • ss_info - собирает системные данные (версии ОС, Node.js, пути запуска).
    • ss_ip - определяет публичный IP-адрес жертвы через ip-api.com.

Рекомендации

Пользователям этих пакетов следует немедленно проверить свои проекты на наличие подозрительных зависимостей, откатиться на безопасные версии и обновить пароли. Разработчикам рекомендуется использовать инструменты для мониторинга подозрительных изменений в пакетах, такие как npm audit или сторонние решения для анализа зависимостей.

Индикаторы компрометации

IPv4

  • 136.0.9.8
  • 85.239.62.36

IPv4 Port Combinations

  • 136.0.9.8:3306
  • 85.239.62.36:3306

Packages

  • @gluestack-ui/utils
  • @react-native-aria/button
  • @react-native-aria/checkbox
  • @react-native-aria/combobox
  • @react-native-aria/disclosure
  • @react-native-aria/focus
  • @react-native-aria/interactions
  • @react-native-aria/listbox
  • @react-native-aria/menu
  • @react-native-aria/overlays
  • @react-native-aria/radio
  • @react-native-aria/separator
  • @react-native-aria/slider
  • @react-native-aria/switch
  • @react-native-aria/tabs
  • @react-native-aria/toggle
  • @react-native-aria/utils
Комментарии: 0