Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2025-55182 — react CVE-2025-55182 | Kitploit
Инструменты/GitHubGitHub/tanvirahmedcs/cve-2025-55182
Сканеры уязвимостейСканеры веб-уязвимостейАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на Проникновение
GitHubtanvirahmedcs/cve-2025-55182

CVE-2025-55182

react CVE-2025-55182

Репозиторий
2 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2025-55182 — Неаутентифицированное RCE в React Server Components

Степень серьёзности: Критическая — CVSS 10.0
CWE: CWE-502 (Десериализация недоверенных данных)
Производитель: Meta (Facebook)
Раскрыта: 3 декабря 2025 года


Обзор

CVE-2025-55182 — это уязвимость максимальной степени серьёзности, позволяющая неаутентифицированному злоумышленнику выполнять удалённый код (RCE) в React Server Components (RSC); ей присвоено название React2Shell. Дефект заключается в том, как React декодирует полезные нагрузки, отправляемые на эндпоинты React Server Function через Flight protocol. Злоумышленник может отправить единственный особым образом сформированный HTTP POST-запрос на уязвимый сервер и выполнить произвольный код — без учётных данных и без участия пользователя.

Приложения, которые не предоставляют явных эндпоинтов Server Function, по-прежнему уязвимы, если они поддерживают React Server Components.


Затронутые пакеты и версии

ПакетУязвимые версииИсправленные версии
react-server-dom-webpack19.0.0, 19.1.0, 19.1.1, 19.2.0≥ 19.0.1 / 19.1.2 / 19.2.1
react-server-dom-parcel19.0.0, 19.1.0, 19.1.1, 19.2.0≥ 19.0.1 / 19.1.2 / 19.2.1
react-server-dom-turbopack19.0.0, 19.1.0, 19.1.1, 19.2.0≥ 19.0.1 / 19.1.2 / 19.2.1

Затронутые фреймворки (при использовании уязвимых пакетов React): Next.js 15.x / 16.x (App Router), React Router, Waku, RedwoodSDK, Parcel RSC, Vite RSC plugin.


Разбивка по CVSS v3.1

Векторная строка: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H


Как работает уязвимость

React Server Components используют двоичный сетевой формат под названием Flight protocol для потоковой передачи деревьев компонентов с сервера на клиент. Этот же протокол обслуживает Server Functions (ранее Server Actions) — вызываемые эндпоинты, принимающие сериализованные аргументы из браузера.

Уязвимость находится в десериализаторе: когда React обрабатывает Flight-полезную нагрузку, его можно обманом заставить создавать произвольные объекты на стороне сервера, что приводит к полному RCE. Поскольку Flight-эндпоинт доступен по умолчанию всегда, когда включён RSC, и поскольку на уровне протокола отсутствует аутентификационный барьер, для эксплуатации достаточно лишь сетевого доступа к серверу.


Шаблон Nuclei

Включённый шаблон CVE-2025-55182.yaml использует три взаимодополняющих метода обнаружения.

Запрос 1 — Универсальный зонд Flight-эндпоинта RSC

Отправляет минимальный POST-запрос с заголовком Content-Type: text/x-component на корневой путь. Уязвимый (или доступный) RSC-сервер отвечает с тем же content-type и телом Flight-потока, строки которого начинаются с буквенно-цифровых идентификаторов строк, за которыми следует двоеточие (например, 0:, 1:), или со специальных символов ссылок React ($L, $S, $I, $@).

root@kitploit:~
POST / HTTP/1.1
Content-Type: text/x-component
Accept: text/x-component, */*

Условие совпадения: HTTP 200 + заголовок text/x-component + регулярное выражение Flight-потока в теле ответа.

Запрос 2 — Зонд RSC для Next.js App Router

Next.js помечает RSC-запросы с помощью заголовка RSC: 1 и параметра запроса ?_rsc=. Этот запрос имитирует браузерный prefetch, чтобы подтвердить доступность Flight-эндпоинта App Router.

root@kitploit:~
GET /?_rsc=1 HTTP/1.1
Accept: text/x-component
RSC: 1
Next-Router-State-Tree: %5B%22%22%2C%7B%7D%5D

Условие совпадения: HTTP 200 + заголовок text/x-component.

Запрос 3 — Зонд эндпоинта Server Function (Action)

Отправляет минимальную некорректно сформированную Flight-полезную нагрузку вместе с заголовком Next-Action (механизм, используемый для вызова Server Functions). Уязвимый сервер пытается десериализовать полезную нагрузку; даже ответ с ошибкой, содержащий RSC-специфичные заголовки, подтверждает, что эндпоинт существует.

root@kitploit:~
POST / HTTP/1.1
Content-Type: text/x-component
Next-Action: 0000000000000000000000000000000000000000

Условие совпадения: HTTP 200/400/500 + заголовок text/x-component или x-action-revalidated.

Обнаружение на основе файлов (пассивное)

Сканирует локальные файлы *.json (например, package-lock.json, yarn.lock) на предмет имён уязвимых пакетов в сочетании с регулярным выражением для версий, соответствующим 19.0.0, 19.1.0, 19.1.1 или 19.2.0. Полезно для аудита репозиториев или CI-конвейеров без отправки какого-либо сетевого трафика.


Использование

Предварительные требования

  • Nuclei v3.x или новее
root@kitploit:~
# Install / update Nuclei
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

Активное сканирование — одна цель

root@kitploit:~
nuclei -target CVE-2025-55182.yaml -u https://target.example.com

Активное сканирование — список целей

root@kitploit:~
nuclei -target CVE-2025-55182.yaml -l targets.txt

Пассивное сканирование — локальная директория проекта

root@kitploit:~
nuclei -target CVE-2025-55182.yaml -target ./path/to/project

Подробный вывод с JSON-отчётом

root@kitploit:~
nuclei -target CVE-2025-55182.yaml -u https://target.example.com -v -je results.json

Сканирование с ограничением скорости (рекомендуется для production-систем)

root@kitploit:~
nuclei -target CVE-2025-55182.yaml -u https://target.example.com -rl 10 -timeout 10

Устранение уязвимости

Немедленно обновитесь до исправленной версии:

root@kitploit:~
# npm
npm install react-server-dom-webpack@latest

# yarn
yarn upgrade react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack

# pnpm
pnpm update react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack

Минимальные безопасные версии для каждой ветки:

ВеткаМинимальная безопасная версия
19.0.x19.0.1
19.1.x19.1.2
19.2.x19.2.1

Временные меры снижения риска (если немедленное обновление невозможно):

  • Блокируйте HTTP POST-запросы к RSC/Flight-эндпоинтам на уровне WAF или обратного прокси.
  • Полностью отключите React Server Components, пока не будет применён патч.
  • Разверните правило WAF, нацеленное на тип содержимого text/x-component для входящих POST-запросов (правила Google Cloud Armor общедоступны для этого CVE).

Примечания и ограничения

  • Положительное совпадение по HTTP-зондам подтверждает, что Flight-эндпоинт доступен, что является сильным индикатором уязвимости. Для точного подтверждения версии требуется проверка package-lock.json, node_modules или SBOM.
  • Шаблон не отправляет боевую полезную нагрузку; он предназначен только для обнаружения и безопасен для запуска против production-систем.
  • Приложения, которые не используют React Server Components (React-приложения только на стороне клиента), не затронуты.

Ссылки

  • Официальное уведомление безопасности React — react.dev
  • Уведомление безопасности GitHub — GHSA-fv66-9v8q-g76r
  • NVD — CVE-2025-55182
  • Zscaler ThreatLabz — React2Shell
  • Блог Google Cloud — Злоумышленники эксплуатируют React2Shell
  • Palo Alto Unit 42 — Эксплуатация CVE-2025-55182

Отказ от ответственности

Этот шаблон предназначен исключительно для авторизованного тестирования безопасности и оценки уязвимостей. Запуск его против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения, может быть незаконным. Авторы не несут ответственности за неправомерное использование.

Скачать инструмент
ПоказательЗначение
Вектор атакиСеть
Сложность атакиНизкая
Требуемые привилегииОтсутствуют
Взаимодействие с пользователемНе требуется
Область действияИзменена
КонфиденциальностьВысокая
ЦелостностьВысокая
ДоступностьВысокая
Общая оценка10.0 (Критическая)