В последние недели наблюдались небольшие атаки на малоиспользуемые пакеты, но вечером 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