
This repository documents research into deserialization behavior within Next.js React Server Components (RSC) using the Flight protocol. It focuses on how malformed multipart bodies combined with Server Action request handling can lead to prototype traversal and execution primitives on certain builds.
Этот репозиторий документирует исследование CVE-2025-55182, также известной как React2Shell, критической уязвимости небезопасной десериализации в React Server Components (RSC) и фреймворках, которые встраивают протокол RSC Flight, особенно в Next.js App Router.
Основное внимание здесь уделяется тому, как повреждённые полезные нагрузки RSC / Flight в сочетании с обработкой Server Function (Server Action) могут привести к выполнению подконтрольного злоумышленнику JavaScript на сервере.
Этот материал предназначен для понимания защиты, контролируемого воспроизведения в лабораторных условиях и документирования. Это не готовый набор эксплойтов. Тестируйте только на системах, которыми вы владеете или на проверку которых имеете явное письменное разрешение.
Основная ошибка находится в серверной реализации RSC Flight. Она затрагивает следующие npm-пакеты и версии:
Уязвимые пакеты и версии (Vulert)
react-server-dom-webpack
react-server-dom-parcel
react-server-dom-turbopack
Исправленные версии (согласно рекомендации React) (Vulert)
Любое приложение, использующее React 19 с RSC и один из уязвимых пакетов, должно считаться подверженным уязвимости до обновления, даже если оно явно не определяет Server Functions.
Next.js наследует уязвимую реализацию RSC при использовании App Router. Проблема отслеживается как CVE-2025-66478 для Next.js и также имеет рейтинг CVSS 10.0. (SOCRadar® Cyber Intelligence Inc.)
Уязвимые версии Next.js (App Router)
Все сборки, использующие React 19 RSC с:
next 15.x до:
next 16.x до 16.0.7
Canary-сборки, начиная с 14.3.0-canary.77 и более поздние canary-релизы до исправлений
На практике это означает:
create-next-app, использующие App Router и React 19, находятся в зоне действия, если не обновлены.Не подвержены этой CVE (согласно рекомендациям поставщика) (Black Kite)
Любой фреймворк или бандлер, поставляющий уязвимые пакеты RSC, может быть подвержен. В настоящее время перечислены следующие экосистемы: (Vulert)
@parcel/rsc@vitejs/plugin-rscЕсли стек использует React 19 и один из уязвимых пакетов react-server-dom-*, считайте его подверженным уязвимости, пока не доказано обратное.
На основе публичных уведомлений и отчётов поставщиков эксплуатация имеет следующие характеристики: (Vulert)
Аутентификация
Конфигурация
react-server-dom-*child_process.execСетевая доступность
Схема атаки (высокий уровень)
Оценки CVSS 3.1 описывают это как:
В контролируемых тестовых средах с использованием уязвимых версий и конфигураций с включённым RSC исследователи и поставщики сообщают: (SOCRadar® Cyber Intelligence Inc.)