Критическая уязвимость React2Shell активно эксплуатируется для удаленного выполнения кода

information security

Исследователи компании Sophos сообщают о масштабной эксплуатации критической уязвимости, получившей название React2Shell и зарегистрированной под идентификатором CVE-2025-55182. Уязвимость затрагивает серверные компоненты React версий 19.0.0, 19.1.0, 19.1.1 и 19.2.0. Разработчики React опубликовали информацию о ней 3 декабря 2025 года, а базовый балл CVSS для этой уязвимости был присвоен максимальный - 10.0. Появление в открытом доступе кода для эксплуатации (Proof-of-Concept, PoC) с высокой вероятностью приведет к увеличению числа атак, проводимых не только целевыми, но и оппортунистическими группами злоумышленников.

Описание

React2Shell представляет собой ошибку в обработке данных, которые серверные компоненты React получают от браузера пользователя. Проблема затрагивает определенные версии серверных пакетов React, обрабатывающих запросы через протокол React Flight, предназначенный для передачи данных компонентов и серверных действий. Следовательно, многие фреймворки, использующие серверные компоненты React, такие как Next.js, также оказались уязвимы из-за зависимости от этой логики десериализации.

Уязвимость возникает из-за небезопасной обработки входящих данных в момент преобразования сетевых запросов в объекты JavaScript. В процессе десериализации сервер недостаточно строго проверяет структуру запроса. В результате злоумышленник может отправить специально сформированный запрос, который вместо отклонения будет обработан. Это позволяет вмешаться в процесс выполнения кода на сервере. Эксплуатация данной слабости дает атакующему возможность выполнить произвольный код JavaScript с привилегиями самого приложения. Практически это означает доступ к конфиденциальным данным, изменение логики работы приложения или полный компрометацию серверного окружения. Для атаки достаточно отправить один вредоносный HTTP-запрос, аутентификация при этом не требуется. По данным организации ShadowServer Foundation, на 8 декабря было выявлено более 165 000 уязвимых IP-адресов и 644 000 доменов.

Аналитики Sophos уже наблюдают активность злоумышленников после успешной эксплуатации уязвимости в сетях клиентов. Зафиксированные действия включают быстрое развертывание загрузчиков (loaders) для Linux, установку механизмов постоянного присутствия (persistence) через systemd, cron и rc.local, скрытую установку Node.js и обфусцированного JavaScript в скрытых директориях. Кроме того, злоумышленники используют публичную облачную инфраструктуру и несколько командных серверов (C2), проводят разведку сети, а также отправляют простые сигнальные маяки через Canarytoken URL и вебхуки.

На Windows-системах после эксплуатации уязвимости выполнялись подозрительные команды через PowerShell. На Linux-системах наблюдалось выполнение команд с использованием "/bin/sh" и "curl". Общая схема действий является последовательной. Сначала загружаются и выполняются удаленные скрипты или бинарные файлы, после чего следуют попытки удалить следы атаки. Обнаруженные полезные нагрузки (payloads) соответствуют известным детектам Sophos для загрузчиков и агентов Linux. Анализ показал как минимум четыре ключевых компонента, каждый из которых отвечает за отдельный этап атаки.

Первый скрипт ("gfdsgsdfhfsd_ghsfdgsfdgsdfg.sh") представляет собой многостадийный установщик вредоносного ПО, обеспечивающий постоянный доступ к Linux-системам. Он загружает легитимный бинарный файл Node.js в скрытую директорию, а затем размещает два полезных нагрузки в кодировке Base64: зашифрованный файл данных и сильно обфусцированный JavaScript. JavaScript-компонент использует шифрование AES-256-CBC для расшифровки и выполнения дополнительных нагрузок, запускает фоновый процесс для поддержания присутствия и применяет анти-форензикные меры, удаляя исходный скрипт установки.

Второй скрипт ("tsd.sh") реализует механизм постоянного присутствия для компонента с именем "tsd", создавая записи в "/etc/cron.hourly/" и используя systemd, где это возможно. Если эти методы недоступны, скрипт возвращается к использованию "rc.local". Он гарантирует, что процесс "tsd" всегда запущен, перезапуская его при необходимости, что делает систему устойчивой к простой перезагрузке или завершению процесса.

Третий скрипт ("init.sh") является сложным инструментом для развертывания вредоносного ПО, обеспечивающим компрометацию системы через несколько резервных механизмов. Он загружает вредоносный бинарный файл из AWS S3, устанавливает его в "/usr/infju/system_os" и настраивает постоянное присутствие через сервис systemd и задания cron. Вредоносное ПО маскируется под легитимный системный сервис с функцией автоматического перезапуска. Отдельное задание cron, выполняемое ежедневно в полночь, принудительно перезапускает процесс, обеспечивая работу даже при ручной остановке сервиса. Скрипт содержит множество комментариев на китайском языке, что может указывать на связь с китаеязычными командами разработчиков или повторное использование инструментов.

Четвертый скрипт ("b.sh") функционирует как еще один загрузчик в этой экосистеме. Он загружается через цепочку команд с использованием "curl", "bash", "gzip" и "base64", что позволяет ограничить создание артефактов на диске и потенциально обойти простые системы проверки содержимого. Для подтверждения успешной эксплуатации атакующий отправляет серию команд "curl" и "nslookup" на домены в стиле Canarytokens. На системах Windows для отправки сигнального маяка используется простая команда с вебхуком.

Помимо китайских комментариев в третьем скрипте, несколько сторонних исследователей также связывают эксплуатацию уязвимости React2Shell с китайскими группами, спонсируемыми государством. Компания Amazon Web Services сообщила об использовании инфраструктуры, связанной с группами Earth Lumia и Jackpot Panda. Palo Alto Networks также описала случаи развертывания вредоносного ПО SNOWLIGHT и VShell во время атак, что согласуется с наблюдениями Counter Threat Unit (CTU) за активностью группы BRONZE SNOWDROP. Однако эти инструменты не являются уникальными для одной группы, и для уверенной атрибуции требуется больше доказательств.

Исследование компании Sysdig связывает эксплуатацию уязвимости React2Shell с северокорейскими государственными группировками и предполагает, что развертываемое вредоносное ПО EtherRAT перекликается с инструментарием кампании Contagious Interview. Аналитики Sophos также наблюдали случаи развертывания EtherRAT, но текущих данных недостаточно для подтверждения атрибуции северокорейским акторам или связи с указанной кампанией.

Публикация PoC-кода для CVE-2025-55182 означает, что эксплуатация уязвимости, вероятно, быстро выйдет за рамки целевых государственных групп. Киберпреступники, стремящиеся похитить учетные данные или установить майнеры криптовалют, начнут активно использовать эту уязвимость. Исследователи CTU рекомендуют организациям, использующим доступную из интернета инфраструктуру на базе React, в приоритетном порядке установить патч для CVE-2025-55182 в соответствии с политиками своей среды.

Индикаторы компрометации

MD5

  • 011a62df99e52c8b73e259284ab1db47
  • 88af4a140ec63a15edc17888a08a76b2

SHA1

  • 1e54a769e692a69d74f598e0b1fdb2949f242de3
  • 3ba7c58df9b6d21c04eaa822738291b60c65b7c8
  • c3924fc5a90b6120c811eb716a25c168c72db0ba
  • da33bda52e9360606102693d68316f4ec1be673e

SHA256

  • 5a6fdcb5cf815ce065ee585a210c19d1c9efb45c293476554bf1516cc12a1bab
  • fb3a6bdf98d5010350c04b2712c2c8357e079dec2d2a848d0dc2def2bafcc984
Комментарии: 0