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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-55182-React-Server-Components-Flight-React2Shell- — Разбор и анализ CVE-2025-55182 (React2Shell) — RCE через десериализацию RSC Flight, с разбором первопричины, схемой атаки, патч-диффом и правилами обнаружения Sigma/Suricata/WAF. | Kitploit
Инструменты/GitHubGitHub/certbn/cve-2025-55182-react-server-components-flight-react2shell-
Управление индикаторами компрометации (IOC)Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьРазведка угрозСтатьи и ИсследованияРеагирование на Инциденты

Популярное

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

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

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

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

Смотреть все инструменты →
GitHubcertbn/cve-2025-55182-react-server-components-flight-react2shell-

CVE-2025-55182-React-Server-Components-Flight-React2Shell-

Разбор и анализ CVE-2025-55182 (React2Shell) — RCE через десериализацию RSC Flight, с разбором первопричины, схемой атаки, патч-диффом и правилами обнаружения Sigma/Suricata/WAF.

Репозиторий
12 дней назадЕщё не проверено
Поделиться

CVE-2025-55182: удалённое выполнение кода через десериализацию протокола Flight в React Server Components (React2Shell)

CVSS Type KEV Ransomware

Последняя проверка: 2026-11-04 (KST). Каждое значение указано только если подтверждено источником из раздела References; при расхождениях между источниками приведены все варианты.

📌 TL;DR

  • Что: В процессе десериализации протокола Flight в React Server Components (RSC) не проверяются имена свойств в ссылочных путях, что позволяет атакующему пройти по цепочке прототипов до конструктора Function и выполнить произвольный JavaScript.
  • Где: react-server-dom-webpack / -parcel / -turbopack версий 19.0.0, 19.1.0, 19.1.1, 19.2.0 и фреймворки, использующие их — в первую очередь Next.js 15.x / 16.x App Router. Уязвимость проявляется даже без явного определения серверных функций, достаточно поддержки RSC.
  • Насколько опасно: RCE без аутентификации одним HTTP-запросом (CVSS 10.0). Через несколько часов после публикации началась эксплуатация группой, связанной с Китаем, уязвимость внесена в CISA KEV и отмечена как "Known" для использования в программах-вымогателях.

📋 Основная информация

ПунктСодержание
CVE IDCVE-2025-55182 (React) / CVE-2025-66478 для Next.js отклонён как дубликат (Rejected)
ПсевдонимReact2Shell
Дата публикации2025-12-03 (рекомендация команды React, патч выпущен в тот же день)
ОбнаружилLachlan Davidson (сообщено 2025-11-29 через Meta Bug Bounty)
Затронутые продукты/версииreact-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack 19.0.0, 19.1.0, 19.1.1, 19.2.0 / Next.js 14.3.0-canary.77 и выше canary, 15.x, 16.x (App Router)
Исправленные версииИсправление RCE: React 19.0.1 / 19.1.2 / 19.2.1, Next.js 15.0.5 / 15.1.9 / 15.2.6 / 15.3.6 / 15.4.8 / 15.5.7 / 16.0.7
Рекомендуемые итоговые версии (включая последующие уязвимости): React 19.0.3 / 19.1.4 / 19.2.3 (см. «Последующие уязвимости» ниже)
CVSS v3.110.0 Critical — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
CVSS v4.0На момент написания документа не подтверждено по первичным источникам
CWECWE-502 Deserialization of Untrusted Data (Vercel GHSA-9qr9-h5gf-34mp, GitLab Advisory DB). В записи CISA KEV CWE не указан
Фактическая эксплуатацияЭксплуатация подтверждена. Включено в CISA KEV 2025-12-05, срок устранения для федеральных агентств 2025-12-12, использование в кампаниях программ-вымогателей: Known. AWS наблюдала попытки эксплуатации в течение нескольких часов после публикации

Подробная информация о затрагиваемых версиях

КомпонентУязвимые версииИсправленные версии
react-server-dom-webpack / -parcel / -turbopack19.0.019.0.1 (рекомендуется 19.0.3)
〃19.1.0, 19.1.119.1.2 (рекомендуется 19.1.4)
〃19.2.019.2.1 (рекомендуется 19.2.3)
Next.js 15.x (App Router)15.0 ~ до патча 15.515.0.5 / 15.1.9 / 15.2.6 / 15.3.6 / 15.4.8 / 15.5.7
Next.js 16.x (App Router)ниже 16.0.716.0.7
Next.js canary14.3.0-canary.77 и выше15.6.0-canary.58 / 16.1.0-canary.12 (пользователям 14.3 canary рекомендуется перейти на 14.x stable)
Другие инструменты интеграции RSCReact Router (нестабильный RSC API), Waku, плагин Parcel RSC, плагин Vite RSC (@vitejs/plugin-rsc), RedwoodSDK, Expo и др.Последние версии соответствующих инструментов + исправленный react-server-dom-*

Не затронуты: чисто клиентские приложения React без сервера, Next.js 13.x / 14.x stable, приложения с Pages Router, развёртывания на Edge Runtime.

Последующие уязвимости (важно при выборе исправленной версии)

После исправления React2Shell дальнейшие исследования RSC выявили другие уязвимости, не связанные с RCE. Сама RCE исправлена в 19.0.1 / 19.1.2 / 19.2.1, но для защиты от перечисленных ниже уязвимостей требуются последние версии.

CVEТипCVSS v3.1ПубликацияИсправленная версия
CVE-2025-55184Отказ в обслуживании (DoS)7.52025-12-1119.0.2 / 19.1.3 / 19.2.2 (неполное)
CVE-2025-55183Раскрытие исходного кода5.32025-12-1119.0.2 / 19.1.3 / 19.2.2
CVE-2025-67779DoS из-за неполного патча для CVE-2025-551847.52025-12-1219.0.3 / 19.1.4 / 19.2.3

Некоторые публикации компаний по безопасности (например, обновление Zscaler) формулируют это как «исходный патч для CVE-2025-55182 был неполным». Однако согласно рекомендациям React и GitLab неполным был именно патч для DoS (CVE-2025-55184), а первоисточника, подтверждающего обход исправления RCE, обнаружить не удалось. В любом случае рекомендуемое действие — версия 19.0.3 / 19.1.4 / 19.2.3 или выше.

Ключевые даты

ДатаСобытие
2025-11-29Lachlan Davidson сообщил через Meta Bug Bounty
2025-11-30Подтверждение исследователями безопасности Meta, начало исправления совместно с командой React
2025-12-03Публикация рекомендаций и патчей React (19.0.1 / 19.1.2 / 19.2.1), рекомендаций Next.js (CVE-2025-66478). Облачные провайдеры и компании WAF получили предварительное уведомление и развернули защитные правила
2025-12-03 ~ 04AWS зафиксировала попытки эксплуатации со стороны связанных с Китаем групп (Earth Lamia, Jackpot Panda) в течение нескольких часов после публикации. Zscaler наблюдала более 4 100 попыток эксплуатации за первые 2 часа
2025-12-05Включение в CISA KEV (срок 12-12). Microsoft с этого дня фиксирует реальную вредоносную активность
2025-12-11Публикация последующих уязвимостей CVE-2025-55184 / 55183
2025-12-12Публикация CVE-2025-67779 (неполный патч), выпуск 19.0.3 / 19.1.4 / 19.2.3
2025-12-15Публикация Microsoft анализа активности после эксплуатации и руководства по поиску (hunting guide)

🔍 Анализ причины уязвимости (Root Cause)

1. Предыстория: протокол Flight и чанки (chunk)

RSC обменивается данными между клиентом и сервером через собственный протокол сериализации под названием Flight. Когда клиент вызывает Server Function, браузер отправляет аргументы POST-запросом multipart/form-data, и каждое поле формы становится пронумерованным чанком.

  • Тип выражается строковым префиксом. Например: $<id> — ссылка на значение другого чанка, $@<id> — ссылка на сам объект чанка, $B<id> — обработка Blob.
  • Чанк является thenable-объектом с методом then(). JavaScript await при встрече с thenable вызывает then(), и если результат снова является thenable, вызов рекурсивно продолжается.

2. Что: обход свойств без проверки в getOutlinedModel()

Серверный обработчик ответов Flight (packages/react-server/src/ReactFlightReplyServer.js), функция getOutlinedModel(), разбивает ссылку вида $<id>:<prop1>:<prop2> по разделителю : и последовательно проходит по свойствам целевого чанка в порядке chunk[prop1][prop2].

При этом имя свойства не проверялось на принадлежность к собственным свойствам (own property) объекта. Поэтому можно было обращаться к унаследованным свойствам с именами вроде __proto__, constructor, prototype.

3. Почему: достижение опасных объектов через цепочку прототипов (CWE-502)

В JavaScript constructor.constructor произвольного объекта — это глобальный конструктор Function, который принимает строку и создаёт исполняемую функцию. Согласно публичным анализам (OPSWAT, Zscaler), атакующий комбинирует следующие два элемента.

Скачать инструмент