
Обнаружение уязвимости CVE-2025-55182 (React2Shell) RCE в React Server Components. Быстрый и точный сканер с нулём ложных срабатываний.
Критическая RCE-уязвимость с CVSS 10.0 в React Server Components. Уязвимо ли ваше приложение на React 19?
Быстрый и точный сканер для CVE-2025-55182 (React2Shell) — критической уязвимости удалённого выполнения кода, эксплуатируемой в реальных атаках. Ноль ложных срабатываний благодаря интеллектуальному определению Server Components.
React2Shell — это уязвимость максимальной степени серьёзности (10.0 CVSS) в React Server Components, которая позволяет неаутентифицированное удалённое выполнение кода. Злоумышленники могут эксплуатировать её с помощью специально crafted HTTP-запросов к конечным точкам Server Functions.
Ключевые факты:
⚠️ Важное примечание: Уязвим только React 19.x. React 18.x и более ранние версии НЕ затронуты.
# Вариант A: сканер на Node.js (рекомендуется — кроссплатформенный, без зависимостей)
npx react2shell-scanner /path/to/your/project
# Вариант B: прямое скачивание и запуск
curl -sSL https://raw.githubusercontent.com/nxgn-kd01/react2shell-scanner/main/scan.js > scan.js
node scan.js /path/to/your/project
# Вариант C: клонирование и запуск
git clone https://github.com/nxgn-kd01/react2shell-scanner.git
cd react2shell-scanner
node scan.js /path/to/your/project
Результат за секунды: 🚨 Уязвим | ⚠️ Предупреждения | ✅ Безопасен
Этот инструмент выполняет интеллектуальное определение уязвимостей:
'use server''use server'| Свойство | Значение |
|---|---|
| ID CVE | CVE-2025-55182 |
| Название | React2Shell |
| Оценка CVSS | 10.0 (КРИТИЧЕСКАЯ) |
| Вектор CVSS | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Вектор атаки | Сеть |
| Аутентификация | Не требуется |
| Воздействие | Полная компрометация системы |
React:
19.0.0, 19.1.0, 19.1.1, 19.2.0Пакеты React Server DOM:
react-server-dom-webpack 19.0.0 — 19.2.0react-server-dom-parcel 19.0.0 — 19.2.0react-server-dom-turbopack 19.0.0 — 19.2.0Next.js:
14.0.0 — 14.2.3414.3.0-canary.0 — 14.3.0-canary.8715.0.0 — 15.0.615.1.0 — 15.1.815.2.0 — 15.2.515.3.0 — 15.3.515.4.0 — 15.4.715.5.0 — 15.5.616.0.0 — 16.0.9Дополнительно затронутые фреймворки (согласно официальному бюллетеню React):
react-router 7.0.0 — 7.1.3waku 0.21.0 — 0.21.5@parcel/rsc 2.12.0 — 2.13.2@vitejs/plugin-rsc 0.1.0 — 0.2.0rwsdk (Redwood SDK) 0.1.0 — 0.4.0expo 52.0.0 — 52.0.9React: 19.2.1 или новее
Next.js:
14.2.35+, 14.3.0-canary.88+15.0.7+, 15.1.9+, 15.2.6+, 15.3.6+, 15.4.8+, 15.5.7+16.0.10+Другие фреймворки:
react-router: 7.1.4+waku: 0.21.6+@parcel/rsc: 2.13.3+@vitejs/plugin-rsc: 0.2.1+rwsdk: 0.4.1+expo: 52.0.10+Сканер на Node.js (рекомендуется):
Bash-сканер:
# Установка jq (при использовании Bash-сканера)
# macOS
brew install jq
# Ubuntu/Debian
sudo apt-get install jq
# RHEL/CentOS
sudo yum install jq
Вариант A: Клонирование (рекомендуется для пользователей)
# Клонирование репозитория
git clone https://github.com/nxgn-kd01/react2shell-scanner.git
cd react2shell-scanner
# Делаем скрипты исполняемыми
chmod +x scan.sh scan.js
Вариант B: Форк (рекомендуется для контрибьюторов)
# Создайте форк на GitHub (нажмите кнопку "Fork" на странице репозитория)
# Затем клонируйте свой форк
git clone https://github.com/YOUR_USERNAME/react2shell-scanner.git
cd react2shell-scanner
# Делаем скрипты исполняемыми
chmod +x scan.sh scan.js
# Добавьте upstream-удалённый репозиторий для получения обновлений
git remote add upstream https://github.com/nxgn-kd01/react2shell-scanner.git
Вариант C: Прямое скачивание
# Версия на Node.js (рекомендуется — кроссплатформенная)
curl -O https://raw.githubusercontent.com/nxgn-kd01/react2shell-scanner/main/scan.js
chmod +x scan.js
# Версия на Bash (только Unix/Linux/macOS)
curl -O https://raw.githubusercontent.com/nxgn-kd01/react2shell-scanner/main/scan.sh
chmod +x scan.sh
🔍 Сканирование текущего каталога:
# Используя Node.js (рекомендуется)
node scan.js
# Используя Bash
./scan.sh
📁 Сканирование конкретного проекта:
node scan.js /path/to/project
./scan.sh /path/to/project
🗂️ Рекурсивное сканирование (все подкаталоги):
node scan.js -r
./scan.sh -r
Вывод в JSON (для автоматизации):
node scan.js --json
./scan.sh --json
Режим CI/CD (выход с кодом 1 при обнаружении уязвимости):
node scan.js --ci
./scan.sh --ci
Подробный вывод:
node scan.js -v
./scan.sh -v
Комбинирование параметров:
node scan.js /path/to/projects -r --json --ci
./scan.sh /path/to/projects -r --json --ci