
Изолированная Docker-лаборатория и статический сканер для CVE-2025-55182, с уязвимыми/исправленными сборками Next.js и проверкой PoC десериализации RSC Flight.
Дисклеймер: Этот репозиторий и его PoC-артефакты созданы строго в образовательных, исследовательских целях и для демонстрации защитных механизмов в изолированной лабораторной среде. Несанкционированное тестирование внешних систем строго запрещено.
Репозиторий предоставляет воспроизводимую среду Docker с двумя контейнерами, предназначенную для анализа, эксплуатации и проверки средств смягчения последствий уязвимости десериализации Flight-протокола React Server Components (RSC) (широко известной как React2Shell / CVE-2025-55182). Лаборатория демонстрирует последствия пост-эксплуатации на необновлённой сборке Next.js и подтверждает эффективность средств защиты на обновлённой сборке.
http://127.0.0.1:3001 (контейнер react2shell-vulnerable)http://127.0.0.1:3002 (контейнер react2shell-patched)internal: true).127.0.0.1 (localhost), что исключает доступность из внешней локальной сети.DUMMY_SECRET=LAB_VULNERABLE_SECRET_DO_NOT_USE_12345), чтобы исключить риск утечки реальных данных.24.0.0+, Compose v2.20.0+)3.8+ — только стандартная библиотека для базовой автоматизации)Клонируйте репозиторий и проверьте локальное окружение:
git clone https://github.com/PhanHoangKhang/React2Shell.git
Перейдите в каталог lab/ и инициализируйте оба контейнера с двойной сборкой:
cd lab
docker-compose up -d --build
cd ..
Запустите сканер обнаружения в обеих лабораториях:
python src/react2shell_scanner.py lab/patched
python src/react2shell_scanner.py lab/vulnerable
cd lab
docker-compose stop
cd ..
Для выполнения тестов проверки эксплуатации и подтверждения артефактов эксфильтрации обратитесь к подробному пошаговому руководству PoC:
👉 Руководство по PoC и проверке уязвимости (poc_reference.md)
package-lock.json (формат v3). Статический сканер в первую очередь анализирует дерево разрешённых зависимостей внутри packages["node_modules/next"] для точного обнаружения.< 15.0.3 (включая сборки 15.0.0-rc) считаются уязвимыми к десериализации Flight-протокола RSC.| Целевой сервис | Фреймворк / Пакет | Установленная версия | Формат lock-файла |
|---|
Уязвимая цель (:3001) | Next.js | 15.0.0-rc.1 | package-lock.json (Lockfile Version 3) |
| React / React-DOM | 19.0.0-rc-65a56d0e-20241020 | Релиз NPM Registry | |
Обновлённая цель (:3002) | Next.js | 15.0.3 (Stable) | package-lock.json (Lockfile Version 3) |
| React / React-DOM | 19.0.0 (Stable) | Релиз NPM Registry |