
Сканер безопасности для обнаружения уязвимостей CVE-2025-55182 и CVE-2025-66478 в проектах React Server Components (RSC)
Комплексный инструмент для поиска уязвимостей CVE-2025-55182 и CVE-2025-66478 в проектах React и Next.js, использующих серверные компоненты React (RSC).
Этот инструмент проверяет ваш проект на наличие уязвимых версий React, Next.js и связанных пакетов RSC, подверженных атакам удалённого выполнения кода (RCE). Уязвимость позволяет неавторизованным злоумышленникам выполнять произвольный код на вашем сервере.
⚠️ Критическое предупреждение: По состоянию на декабрь 2025 года примерно 39% облачных сред содержат экземпляры Next.js или React с уязвимыми версиями. Требуется немедленное действие, если вы используете серверные компоненты React.
node_modules на наличие уязвимых версий пакетов"use server" в вашей кодовой базе| Пакет | Описание |
|---|---|
react | Основная библиотека React |
next | Фреймворк Next.js |
react-server-dom-webpack | Интеграция RSC с Webpack |
react-server-dom-parcel | Интеграция RSC с Parcel |
react-server-dom-turbopack | Интеграция RSC с Turbopack |
check.js:git clone https://github.com/yourusername/check-react-rce-cve-2025-55182.git
cd /path/to/your/project
node /path/to/check.js
Вы также можете скопировать check.js непосредственно в ваш проект и выполнить:
node check.js
===========================================================================
СКАНЕР УЯЗВИМОСТИ RCE REACT (CVE-2025-55182)
===========================================================================
Сканирование установленных пакетов...
Запуск углублённого сканирования кодовой базы...
===========================================================================
ОТЧЁТ АУДИТА
===========================================================================
[CVE-2025-55182] Уязвимость React
---------------------------------------------------------------------------
react : 19.0.0 УЯЗВИМ (React 19.0.0 < 19.0.1)
react-server-dom-webpack : 19.0.0 УЯЗВИМ (19.0.0 < 19.0.1)
[CVE-2025-66478] Уязвимость Next.js
---------------------------------------------------------------------------
next : 15.0.3 УЯЗВИМ (v15.0.x < 15.0.5)
[Анализ проекта]
---------------------------------------------------------------------------
Тип маршрутизатора : App Router (с поддержкой RSC)
Использование серверных действий: Обнаружено (5 файлов)
===========================================================================
ВЫВОД ПО РИСКУ: КРИТИЧЕСКИЙ (CVSS 10.0 – Удалённое выполнение кода)
===========================================================================
⚠ ТРЕБУЕТСЯ ДЕЙСТВИЕ:
Ваш проект использует серверные компоненты React с уязвимыми пакетами.
Эта уязвимость позволяет неавторизованное удалённое выполнение кода.
Уязвимые пакеты: react, next, react-server-dom-webpack
Выполните следующие команды для исправления:
> npm install react@latest react-dom@latest
> npm install next@latest
> npm update react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack
| Уровень | Описание |
|---|---|
| 🔴 КРИТИЧЕСКИЙ | Обнаружены уязвимые пакеты + используются возможности RSC. Требуется немедленное действие. |
| 🟡 СРЕДНИЙ | Обнаружены уязвимые пакеты, но RSC активно не обнаружено. Рекомендуется обновление. |
| 🟢 БЕЗОПАСНО | Уязвимые пакеты отсутствуют или используются версии до поддержки RSC. |
| Статус | Значение |
|---|---|
УЯЗВИМ | Версия пакета подвержена CVE |
БЕЗОПАСНО | Пакет обновлён до исправленной версии |
БЕЗОПАСНО_КЛАССИЧЕСКИЙ | Версия пакета предшествует RSC (не затронута) |
НЕ УСТАНОВЛЕН | Пакет не найден в проекте |
НЕИЗВЕСТНО | Не удалось определить статус версии |
| Ветка | Уязвимые версии | Исправленная версия |
|---|---|---|
| React 19.0.x | 19.0.0 | ≥ 19.0.1 |
| React 19.1.x | 19.1.0, 19.1.1 | ≥ 19.1.2 |
| React 19.2.x | 19.2.0 | ≥ 19.2.1 |
| React 18.x и ниже | — | Не затронуты (нет поддержки RSC) |
| Ветка | Исправленная версия |
|---|---|
| Next.js 16.0.x | ≥ 16.0.7 |
| Next.js 15.5.x | ≥ 15.5.7 |
| Next.js 15.4.x | ≥ 15.4.8 |
| Next.js 15.3.x | ≥ 15.3.6 |
| Next.js 15.2.x | ≥ 15.2.6 |
| Next.js 15.1.x | ≥ 15.1.9 |
| Next.js 15.0.x | ≥ 15.0.5 |
| Next.js 14.3.0-canary.77+ | ⚠️ Уязвим (канальная версия с протоколом Flight) |
| Next.js 14.x (стабильная) | Не затронута |
| Next.js 13.x | Не затронута |
Следующие конфигурации НЕ затронуты этими уязвимостями:
Серьёзность: КРИТИЧЕСКАЯ (CVSS 10.0)
Затронутые пакеты:
react-server-dom-webpackreact-server-dom-parcelreact-server-dom-turbopackТип уязвимости: Небезопасная десериализация
Описание:
Критическая уязвимость удалённого выполнения кода (RCE) существует в пакете react-server, который является неотъемлемой частью серверных компонентов React (RSC). Недостаток вызван уязвимостью небезопасной десериализации в протоколе "Flight" RSC.
Уязвимость позволяет неавторизованному злоумышленнику выполнить удалённый код на сервере, отправив специально созданный HTTP-запрос к любой конечной точке серверной функции. Даже приложения, которые явно не реализуют конечные точки серверных функций React, могут быть уязвимы, если они поддерживают серверные компоненты React, поскольку уязвимость затрагивает конфигурации по умолчанию.
Вектор атаки:
Воздействие:
Ссылки:
Серьёзность: КРИТИЧЕСКАЯ (CVSS 10.0)
Затронутый пакет: next
Тип уязвимости: Небезопасная десериализация (унаследована от React RSC)
Описание: Критическая уязвимость удалённого выполнения кода в Next.js затрагивает приложения, использующие App Router с серверными компонентами React. Эта уязвимость является производным проявлением CVE-2025-55182, поскольку Next.js наследует недостаток через свою реализацию протокола React Flight.
Уязвимость позволяет неавторизованным злоумышленникам выполнять произвольный код на уязвимых серверах, отправляя специально созданные HTTP-запросы, которые используют небезопасную обработку полезных нагрузок RSC.
Вектор атаки:
Воздействие:
Ссылки:
Уязвимость протокола React Flight затрагивает любой фреймворк или сборщик, реализующий серверные компоненты React. Если ваш проект использует что-либо из перечисленного ниже, вам следует проверить, что пакеты React исправлены:
| Фреймворк/Инструмент | Статус | Примечания |
|---|---|---|
| Next.js | ⚠️ Затронут | Основной фреймворк, использующий RSC. Обновите до исправленных версий. |
| React Router | ⚠️ Затронут | В режиме RSC убедитесь, что пакеты React обновлены. |
| Waku | ⚠️ Затронут | Минимальный фреймворк RSC. Должен использовать исправленные версии React. |
| RedwoodJS (rwsdk) | ⚠️ Затронут | rwsdk использует RSC. Убедитесь, что пакеты React исправлены. |
| Parcel | ⚠️ Затронут | При использовании @parcel/rsc проверьте пакеты React. |
| Vite | ⚠️ Затронут | При использовании @vitejs/plugin-rsc проверьте пакеты React. |
| Remix | ⚠️ Потенциально затронут | При использовании экспериментальных возможностей RSC убедитесь, что React исправлен. |
Любое приложение, использующее серверные компоненты React, потенциально уязвимо. Основная уязвимость существует в реализации RSC React, поэтому независимо от используемого фреймворка вы должны обновить пакеты React (
react,react-dom,react-server-dom-*) до исправленных версий.
Крупные облачные провайдеры активно развернули правила Web Application Firewall (WAF) для защиты от этих уязвимостей. Однако защита WAF является временной мерой и НЕ отменяет необходимости исправления ваших приложений.
| Функция | Детали |
|---|---|
| Статус | ✅ Защищено |
| Покрытие | Все клиенты (Free, Pro, Business, Enterprise) |
| Требование | Трафик должен проходить через WAF Cloudflare |
| Необходимые действия | Убедитесь, что управляемые правила включены (Pro/Enterprise) |
| Примечание | Cloudflare Workers по своей сути невосприимчивы к этой эксплуатации |
Cloudflare развернула новые правила WAF для автоматической блокировки попыток эксплуатации CVE-2025-55182. Все клиенты, чей трафик React-приложений проходит через Cloudflare, автоматически защищены.
Чтобы проверить защиту:
| Функция | Детали |
|---|---|
| Статус | ✅ Защищено |
| Набор правил | AWSManagedRulesKnownBadInputsRuleSet (v1.24+) |
| Покрытие | Клиенты AWS WAF, использующие управляемые правила |
| Необходимые действия | Проверьте, что версия набора правил 1.24 или новее |
AWS интегрировала обновлённые правила для CVE-2025-55182 в версию по умолчанию (1.24) управляемого набора правил AWS WAF.
Чтобы включить защиту:
# Проверьте версию вашего набора правил в консоли AWS
# Security → WAF → Web ACLs → [Ваш ACL] → Rules
Вариант пользовательского правила: Для немедленной защиты вы можете развернуть пользовательские правила AWS WAF для обнаружения и предотвращения попыток эксплуатации:
{
"Name": "BlockReactRCE",
"Priority": 0,
"Statement": {
"ByteMatchStatement": {
"SearchString": "rsc-payload-exploit-pattern",
"FieldToMatch": { "Body": {} },
"TextTransformations": [{ "Priority": 0, "Type": "NONE" }],
"PositionalConstraint": "CONTAINS"
}
},
"Action": { "Block": {} }
}
Примечание: Управляемые сервисы AWS, как правило, не затронуты, но приложения, работающие на уязвимых версиях React/Next.js в вашей среде, должны быть немедленно обновлены.
| Функция | Детали |
|---|---|
| Статус | ✅ Защищено |
| Набор правил | Default Rule Set (DRS) 2.1 |
| Покрытие | Клиенты Azure WAF |
| Необходимые действия | Убедитесь, что используется DRS 2.1, или создайте пользовательские правила |
Azure WAF с последним набором правил по умолчанию (DRS) 2.1 может обнаружить некоторые попытки эксплуатации этой уязвимости.
Чтобы включить защиту:
Пример пользовательского правила: Организации могут создавать пользовательские правила WAF, специально предназначенные для блокировки шаблона эксплуатации. Azure рекомендует тестировать пользовательские правила в тестовой среде перед развёртыванием в производстве.
| Функция | Детали |
|---|---|
| Статус | ✅ Защищено |
| Сервис | Cloud Armor |
| Покрытие | Клиенты Cloud Armor |
| Необходимые действия | Включите предварительно настроенные правила WAF |
Google Cloud Armor обеспечивает защиту через предварительно настроенные правила WAF и может быть настроен с помощью пользовательских политик безопасности.
Чтобы включить защиту:
| Функция | Детали |
|---|---|
| Статус | ✅ Защищено |
| Покрытие | Все развёртывания Vercel |
| Необходимые действия | Всё равно необходимо обновить Next.js до исправленной версии |
Vercel внедрила меры смягчения на уровне платформы для защиты размещённых приложений. Однако Vercel настоятельно рекомендует обновиться до исправленных версий Next.js.
⚠️ Защита WAF – временная мера. Все облачные провайдеры подчёркивают, что:
- WAF не устраняет уязвимость – они только блокируют известные шаблоны эксплуатации
- Злоумышленники могут обойти WAF – новые варианты эксплуатации могут избежать обнаружения
- Исправление обязательно – немедленно обновитесь до исправленных версий
- Пересоберите приложения – после обновления пересоберите, чтобы использовать исправленные зависимости
Выполните следующие команды в каталоге вашего проекта:
# Обновление пакетов React
npm install react@latest react-dom@latest
# Обновление Next.js (если используется)
npm install next@latest
# Обновление пакетов RSC (если присутствуют)
npm update react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack
# ВАЖНО: Пересоберите ваше приложение
npm run build
После обновления запустите сканер снова, чтобы подтвердить устранение всех уязвимостей:
node check.js
Ожидаемый вывод должен показывать:
ВЫВОД ПО РИСКУ: БЕЗОПАСНО
✓ Ваша система защищена от CVE-2025-55182 и CVE-2025-66478.
| Дата | Событие |
|---|---|
| 3 декабря 2025 г. | Уязвимость раскрыта исследователями безопасности |
| 3 декабря 2025 г. | Назначены CVE-2025-55182 и CVE-2025-66478 |
| 3 декабря 2025 г. | Команда React публикует бюллетень безопасности |
| 3 декабря 2025 г. | Команды React и Next.js выпускают исправления |
| 3 декабря 2025 г. | Облачные провайдеры развёртывают защиту WAF |
| 3 декабря 2025 г. | Сообщений об эксплуатации в дикой природе не зафиксировано |
Лицензия MIT – см. LICENSE для подробностей.
Будьте в безопасности! 🔐