Один троян, миллионы установок — популярные пакеты для разработчиков превратились в орудие зла

Gluestack, NPM, RAT — всё сходится в одну цепочку, и она ведёт к вам.


4fkqlucn100ek14gmccq2zxow7uqdevg.jpg


На платформе NPM зафиксирована масштабная атака на цепочку поставок: злоумышленники скомпрометировали 17 популярных пакетов из семейства Gluestack @react-native-aria , встроив в них вредоносный код. Эти пакеты используются в мобильной разработке и совокупно загружаются более миллиона раз в неделю, что делает атаку одной из самых значительных в 2025 году.

Внедрение вредоносного кода началось 6 июня, когда была опубликована новая версия пакета @react-native-aria/focus. С этого момента злоумышленники поочерёдно выпустили вредоносные обновления для ещё 16 компонентов библиотеки.

Компрометация была выявлена специалистами из Aikido Security, которые обнаружили замаскированный фрагмент вредоносного JavaScript-кода, добавленного в конце файла lib/index.js. Код был обфусцирован и дополнен пробелами, что затрудняло его обнаружение в веб-интерфейсе NPM.

Анализ показал, что вредоносная вставка функционирует как троян удалённого доступа ( RAT ). Программа устанавливает соединение с управляющим сервером злоумышленников и может выполнять удалённые команды. Среди доступных команд — смена текущего каталога, загрузка отдельных файлов или папок, остановка передачи, а также исполнение любых произвольных shell-команд через child_process.exec().

Особенность реализации трояна заключается также в том, что он перехватывает переменную окружения PATH в Windows, подменяя путь к Python на фиктивный (%LOCALAPPDATA%\Programs\Python\Python3127). Это позволяет исполнять вредоносные бинарники вместо легитимных утилит Python или pip без ведома пользователя.

К моменту публикации атака затронула следующие пакеты:

@react-native-aria/button, checkbox, combobox, disclosure, focus, interactions, listbox, menu, overlays, radio, switch, toggle, utils, separator, slider, tabs, а также @gluestack-ui/utils. Общий объём установок этих пакетов на момент атаки составлял около 1,02 миллиона загрузок в неделю.

Как указали в Aikido, вредоносная реализация очень похожа на предыдущую атаку , проведённую теми же злоумышленниками месяц назад. Тогда также использовалась RAT-функциональность с аналогичными управляющими командами.

Несмотря на многочисленные попытки связаться с командой Gluestack через GitHub, ответа получено не было. Представители NPM также были уведомлены, но их проверка и меры реагирования, по словам Aikido, обычно занимают несколько дней.

Кроме того, специалисты связывают текущую атаку с недавней компрометацией ещё четырёх пакетов: biatec-avm-gas-station, cputil-node, lfwfinance/sdk и lfwfinance/sdk-dev. Это подтверждает, что за операцией стоит одна и та же группа.

8 июня стало известно о заражении ещё одного пакета @react-native-aria/tabs, что увеличило общий охват атаки и превысило миллион загрузок. Позднее Gluestack опубликовала обновление: скомпрометированный токен был отозван , заражённые версии помечены как устаревшие, а указатель «latest» перенаправлен на безопасную более раннюю сборку. Полностью удалить вредоносные версии не удалось из-за зависимости других пакетов.

Инцидент подчёркивает, насколько уязвимы экосистемы open source , в особенности, когда обновления библиотек происходят автоматически. Даже незначительное изменение в одном пакете может стать входной точкой для масштабной кампании шпионажа или саботажа, охватывающей тысячи проектов по всему миру.