
Рабочий PoC для CVE-2025-55182 (React2Shell) — неаутентифицированное удалённое выполнение кода в Next.js 15.0.0 через React Server Components
⚠️ ТОЛЬКО ДЛЯ ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ
Этот репозиторий создан строго для образовательных и исследовательских целей. Он демонстрирует критическую уязвимость в React Server Components (Next.js), чтобы помочь разработчикам понять риски и важность обновления зависимостей.
НЕ ИСПОЛЬЗУЙТЕ ЭТОТ КОД В ПРОИЗВОДСТВЕННОЙ СРЕДЕ И НЕ НАПРАВЛЯЙТЕ ЕГО ПРОТИВ СИСТЕМ, КОТОРЫЕ ВАМ НЕ ПРИНАДЛЕЖАТ.
Этот проект воспроизводит CVE-2025-55182 (также известную как «React2Shell») — уязвимость удалённого выполнения кода (RCE), затрагивающую React Server Components в приложениях Next.js.
multipart/form-data, который эксплуатирует логику десериализации React Server Components для выполнения произвольного JavaScript-кода на сервере.
app/page.js: Содержит . Этот клиентский компонент позволяет выполнять RCE-команды прямо из браузера.app/actions.js: Содержит стандартный Server Action. Уязвимость кроется в логике парсинга фреймворка до выполнения этого действия.exploit.js: Автономный Node.js-скрипт для программной демонстрации эксплойта.Клонируйте репозиторий:
git clone https://github.com/pkrasulia/CVE-2025-55182-NextJS-RCE-PoC.git
cd react-cve-test
(Необязательно) Используйте правильную версию Node.js:
nvm use
Установите зависимости (будут установлены уязвимые версии):
npm ci --legacy-peer-deps
# OR
npm install --force
Запустите сервер разработки:
npm run dev
Сервер должен запуститься на http://localhost:3000.
http://localhost:3000 в браузере.whoami, ls -la или cat package.json).Вы можете запустить скрипт эксплойта прямо из терминала:
# Basic usage
node exploit.js http://localhost:3000 "whoami"
# Open Calculator (Linux) - use '&' to run in background
node exploit.js http://localhost:3000 "gnome-calculator &"
Чтобы исправить эту уязвимость в своих проектах:
npm install next@latest react@latest react-dom@latest
Автор не несёт ответственности за любое неправомерное использование этой информации. Этот проект предназначен для помощи исследователям безопасности и разработчикам в повышении безопасности своих приложений.