React2Shell - критическая RCE-уязвимость в React Server Components и Next.js. Что произошло и как быстро пофиксить

В конце 2025 года разработчики выявили уязвимость React2Shell (CVE-2025-55182/CVE-2025-66478), которая позволяет удалённо выполнять произвольный код на серверах, где запущены приложения на React Server Components (в том числе Next.js 15–16).

Уязвимости сразу присвоили CVSS 10.0, максимальный уровень критичности.

В статье разберём:

  • что такое React2Shell;

  • какие проекты под угрозой;

  • как проверить свою версию;

  • как правильно обновиться;

  • что делать, если приложение было доступно до фикса;

  • рекомендации по защите в продакшене.


Что такое React2Shell

React2Shell - это цепочка уязвимостей в реализации React Server Components (RSC), которая позволяет сформировать специальный запрос и добиться выполнения произвольного кода на сервере.

При этом атака не требует аутентификации, достаточно публичного доступа к RSC-эндпоинту.

Используются особенности протокола сериализации RSC и недостатки обработки "ссылок" на серверные функции.


Кто уязвим

Под угрозой находятся все приложения, использующие RSC:

  • Next.js версии 15.0.0–16.0.6 (включая некоторые canary-релизы 14.x)

  • React-проекты, использующие react-server-dom-webpack

  • Проекты на Vite/Parcel/Turbopack, если подключены RSC

  • Любые фреймворки, где есть RSC

Не уязвимы:

  • классические SPA на React (чистый client-side bundle)

  • Next.js 12–13 (если без App Router и RSC)

  • Next.js 14 без включённого RSC или ниже 14.3.0-canary.76


Как проверить, уязвимо ли ваше приложение

1. Проверка версии Next.js

npm ls next

или

yarn why next

Если версия между 15.0.0 и 16.0.6 включительно - обновляться обязательно.

2. Проверка зависимостей RSC-библиотек

npm ls react-server-dom-webpack

Если версия старше react 19.0.0 до патча - обновляться.


Как пофиксить: пример обновления

1. Обновление Next.js

Vercel выпустил безопасные версии: 15.5.7, 16.0.7, а также исправления во всех LTS-ветках.

npm:

npm install next@latest react@latest react-dom@latest --save

yarn:

yarn add next@latest react@latest react-dom@latest

pnpm:

pnpm add next@latest react@latest react-dom@latest

После обновления пересоберите проект:

npm run build

2. Обновление React Server DOM (если проект не на Next.js)

Если RSC используется вручную:

npm install react-server-dom-webpack@latest react@latest react-dom@latest

Что делать, если приложение было доступно до фикса

Даже если вы обновились, рекомендуется:

  1. Ротировать секреты

    • JWT секреты

    • API-ключи

    • OAuth-ключи

    • Ключи доступа к базе данных

    • AWS/GCP токены

  2. Пересобрать контейнеры и перекатить инстансы

  3. Проверить логи на подозрительные запросы


Дополнительная защита

Даже после обновления можно добавить меры безопасности.

1. Ограничить доступ к серверным функциям - в Next.js можно использовать middleware:

// middleware.ts
export function middleware(req) {
  const ua = req.headers.get('user-agent') || "";
  if (ua.includes("curl") || ua.includes("wget")) {
    return new Response("Forbidden", { status: 403 });
  }
}

Это не стопроцентная защита, но снижает вероятность автоматизированных атак.

2. Защитить специфические эндпоинты Cloudflare WAF или Nginx:

Nginx:

location ~* _rsc {
    deny all;
}

Cloudflare WAF rule:

URI Path contains "_rsc" → Block

Итоги

React2Shell - один из самых критичных инцидентов в истории React/Next.js.

Чтобы защитить свой проект:

  • обновить Next.js / React до патч-версии

  • пересобрать приложение

  • ротировать секреты

  • добавить WAF/дополнительные проверки

  • проверить логи

Похожие статьи

Рекомендательные технологии Подробнее
Кибербезопасность • 4 месяца назад

F5 устранила две критические уязвимости в NGINX

F5 выпустила обновления для устранения двух критических уязвимостей в NGINX Open Source и связанных продуктах. Обе ошибки позволяют удалённое выполнение кода при определённых конфигурациях сервера.

Кибербезопасность • 8 месяцев назад

Опасные расширения Chrome похищают данные бизнеса, почту и историю браузера

Новое вредоносное расширение Google Chrome, которое маскируется под инструмент для работы с Meta Business Suite, но похищает 2FA-коды, контакты и аналитические данные, а также затрагивает другие опасные кампании расширений.

Кибербезопасность • 4 месяца назад

152 расширения Chrome с 105 тысячами установок уличили в распространении adware и подделке трафика

Исследователи выявили сеть из 152 расширений Chrome, распространявших потенциально нежелательное ПО и подделывавших источники трафика. Расширения имитировали органические переходы из Google и собирали данные пользователей вопреки заявлениям в магазине Chrome.

Кибербезопасность • 8 месяцев назад

Новая DNS-атака ClickFix через nslookup от Microsoft

Статья рассказывает об обновлённой версии техники ClickFix, раскрытой Microsoft. Злоумышленники используют DNS-запросы через nslookup, чтобы скрытно подгружать вредоносные модули и обойти защиту.