Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
react2shell-scanner — Обнаружение уязвимости CVE-2025-55182 (React2Shell) RCE в React Server Components. Быстрый и точный сканер с нулём ложных срабатываний. | Kitploit
Инструменты/GitHubGitHub/nxgn-kd01/react2shell-scanner
Сканеры уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийDevSecOpsБезопасность Цепочки Поставок
GitHubnxgn-kd01/react2shell-scanner

react2shell-scanner

Обнаружение уязвимости CVE-2025-55182 (React2Shell) RCE в React Server Components. Быстрый и точный сканер с нулём ложных срабатываний.

Репозиторий
37 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

🚨 React2Shell Scanner

Критическая RCE-уязвимость с CVSS 10.0 в React Server Components. Уязвимо ли ваше приложение на React 19?

Быстрый и точный сканер для CVE-2025-55182 (React2Shell) — критической уязвимости удалённого выполнения кода, эксплуатируемой в реальных атаках. Ноль ложных срабатываний благодаря интеллектуальному определению Server Components.

CVSS Score License: MIT GitHub Issues GitHub Stars PRs Welcome

🚨 О React2Shell (CVE-2025-55182)

React2Shell — это уязвимость максимальной степени серьёзности (10.0 CVSS) в React Server Components, которая позволяет неаутентифицированное удалённое выполнение кода. Злоумышленники могут эксплуатировать её с помощью специально crafted HTTP-запросов к конечным точкам Server Functions.

Ключевые факты:

  • Затронуты: React 19.x, Next.js 14–16.x, react-router, waku, @parcel/rsc, expo
  • Вектор атаки: Сеть (аутентификация не требуется)
  • Воздействие: Полная компрометация сервера (RCE)
  • Раскрытие: 3 декабря 2025 г.
  • Эксплуатация: Почти 100%成功率 в конфигурациях по умолчанию
  • Связанные CVE: CVE-2025-55184 (DoS), CVE-2025-55183 (раскрытие исходного кода), CVE-2025-67779

⚠️ Важное примечание: Уязвим только React 19.x. React 18.x и более ранние версии НЕ затронуты.

⚡ Быстрый старт (30 секунд)

root@kitploit:~
# Вариант 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

Результат за секунды: 🚨 Уязвим | ⚠️ Предупреждения | ✅ Безопасен

📋 Что проверяет этот сканер

Этот инструмент выполняет интеллектуальное определение уязвимостей:

1. Анализ версии React 🔴 Критично

  • Определяет уязвимые React 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • Подтверждает, что приложения на React 18.x безопасны (исключает ложные срабатывания)
  • Определяет пакеты react-server-dom-*

2. Проверка конфигурации фреймворка 🟡 Предупреждение

  • Сканирует версии Next.js от 14.x-canary до 16.x
  • Определяет react-router, waku, @parcel/rsc, @vitejs/plugin-rsc, rwsdk, expo
  • Проверяет зависимость React 19 там, где это необходимо
  • Определяет режим статического экспорта (Server Components отключены = безопасно)

3. Определение Server Functions 🔍 Глубокий анализ

  • Сканирует исходные файлы на наличие директив 'use server'
  • Определяет файлы, содержащие Server Functions
  • Помечает только те проекты, которые действительно используют Server Components
  • Примечание: Динамически импортируемые Server Functions требуют ручной проверки

4. Интеллектуальное предотвращение ложных срабатываний ✅ Точность

  • Помечает только приложения с React 19 + Server Components + директивами 'use server'
  • Предоставляет контекст для пограничных случаев
  • Объясняет, почему проекты уязвимы или безопасны

5. Сканирование нескольких проектов 📁 Масштабирование

  • Рекурсивное сканирование каталогов
  • Определяет проекты npm, yarn и pnpm
  • Генерирует команды исправления для каждого проекта

🎯 Возможности сканера

Затронутые версии

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.0
  • react-server-dom-parcel 19.0.0 — 19.2.0
  • react-server-dom-turbopack 19.0.0 — 19.2.0

Next.js:

  • 14.0.0 — 14.2.34
  • 14.3.0-canary.0 — 14.3.0-canary.87
  • 15.0.0 — 15.0.6
  • 15.1.0 — 15.1.8
  • 15.2.0 — 15.2.5
  • 15.3.0 — 15.3.5
  • 15.4.0 — 15.4.7
  • 15.5.0 —

Дополнительно затронутые фреймворки (согласно официальному бюллетеню React):

  • react-router 7.0.0 — 7.1.3
  • waku 0.21.0 — 0.21.5
  • @parcel/rsc 2.12.0 — 2.13.2
  • @vitejs/plugin-rsc 0.1.0 — 0.2.0
  • rwsdk (Redwood SDK) 0.1.0 — 0.4.0
  • expo 52.0.0 — 52.0.9

Исправленные версии

React: 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 (рекомендуется):

  • Node.js 12+ (кроссплатформенный, без зависимостей)

Bash-сканер:

  • Bash 3.2+ (macOS/Linux)
  • jq (обработчик JSON)
root@kitploit:~
# Установка jq (при использовании Bash-сканера)
# macOS
brew install jq

# Ubuntu/Debian
sudo apt-get install jq

# RHEL/CentOS
sudo yum install jq

Шаг 1: Получение сканера

Вариант A: Клонирование (рекомендуется для пользователей)

root@kitploit:~
# Клонирование репозитория
git clone https://github.com/nxgn-kd01/react2shell-scanner.git
cd react2shell-scanner

# Делаем скрипты исполняемыми
chmod +x scan.sh scan.js

Вариант B: Форк (рекомендуется для контрибьюторов)

root@kitploit:~
# Создайте форк на 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: Прямое скачивание

root@kitploit:~
# Версия на 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

💻 Использование

Шаг 2: Запуск сканера

🔍 Сканирование текущего каталога:

root@kitploit:~
# Используя Node.js (рекомендуется)
node scan.js

# Используя Bash
./scan.sh

📁 Сканирование конкретного проекта:

root@kitploit:~
node scan.js /path/to/project
./scan.sh /path/to/project

🗂️ Рекурсивное сканирование (все подкаталоги):

root@kitploit:~
node scan.js -r
./scan.sh -r

Дополнительные параметры

Вывод в JSON (для автоматизации):

root@kitploit:~
node scan.js --json
./scan.sh --json

Режим CI/CD (выход с кодом 1 при обнаружении уязвимости):

root@kitploit:~
node scan.js --ci
./scan.sh --ci

Подробный вывод:

root@kitploit:~
node scan.js -v
./scan.sh -v

Комбинирование параметров:

root@kitploit:~
node scan.js /path/to/projects -r --json --ci
./scan.sh /path/to/projects -r --json --ci

Параметры командной строки

Коды выхода

КодЗначение
0Уязвимости не обнаружены
1Уязвимости обнаружены (при использовании флага --ci)
2Произошла ошибка сканирования

Примеры

Пример 1: Сканирование одного проекта

root@kitploit:~
$ node scan.js ~/my-react-app

╔════════════════════════════════════════════════════════════╗
║  CVE-2025-55182 Scanner (React2Shell)                      ║
╚════════════════════════════════════════════════════════════╝

Severity: CRITICAL (CVSS 10.0)
Description: Unauthenticated RCE in React Server Components

Scan Summary:
  Total projects: 1
  Vulnerable: 1
  Safe: 0

⚠ VULNERABLE PROJECTS FOUND:

1. /Users/user/my-react-app
   └─ react 19.0.0 → 19.2.1
   └─ next 15.0.3 → 15.0.5

   Fix command:
   $ cd /Users/user/my-react-app
   $ npm install [email protected] [email protected]

Пример 2: Рекурсивное сканирование с выводом в JSON

root@kitploit:~
$ node scan.js ~/projects -r --json > results.json
root@kitploit:~
{
  "vulnerability": "CVE-2025-55182",
  "severity": "CRITICAL",
  "cvss": 10.0,
  "scanned": 5,
  "vulnerable": 2,
  "results": [
    {
      "path": "/Users/user/projects/app1",
      "vulnerable": true,
      "packages": [
        {
          "name": "react",
          "version": "19.0.0",
          "fixVersion": "19.2.1"
        }
      ],
      "packageManager": "npm",
      "fixCommands": [
        "cd /Users/user/projects/app1",
        "npm install [email protected]"
      ]
    }
  ]
}

Пример 3: Интеграция с CI/CD

.github/workflows/security-scan.yml

root@kitploit:~
name: CVE-2025-55182 Security Scan

on: [push, pull_request]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '18'

      - name: Download CVE-2025-55182 Scanner
        run: |
          curl -O https://raw.githubusercontent.com/nxgn-kd01/cve-2025-55182-scanner/main/scan.js
          chmod +x scan.js

      - name: Scan for vulnerabilities
        run: node scan.js --ci

GitLab CI (.gitlab-ci.yml)

root@kitploit:~
security-scan:
  stage: test
  image: node:18
  script:
    - curl -O https://raw.githubusercontent.com/nxgn-kd01/cve-2025-55182-scanner/main/scan.js
    - chmod +x scan.js
    - node scan.js --ci
  allow_failure: false

Как это работает

Сканер выполняет следующие проверки:

  1. Находит Node.js-проекты по наличию файлов package.json
  2. Анализирует зависимости из dependencies и devDependencies
  3. Сверяет версии с известными уязвимыми версиями:
    • React 19.0.0, 19.1.0, 19.1.1, 19.2.0
    • Пакеты React Server DOM (те же версии)
    • Диапазоны версий Next.js (14.3.x, 15.x, 16.x)
  4. Ищет Server Functions, проверяя наличие директив 'use server' в исходных файлах
  5. Подтверждает фактическую уязвимость, проверяя:
    • Версию React (затронут только React 19 — React 18 безопасен)
    • Конфигурацию (статические экспорты не используют Server Components)
    • Наличие директив 'use server' (указывает на использование Server Functions)
  6. Определяет менеджер пакетов (npm, yarn или pnpm)
  7. Генерирует команды исправления с соответствующим синтаксисом обновления
  8. Сообщает результаты в читаемом формате или в формате JSON

Возможности обеспечения точности

Сканер включает интеллектуальное определение для предотвращения ложных срабатываний:

  • Проверка версии React: приложения Next.js помечаются только при наличии React 19 (React 18 безопасен)
  • Определение статического экспорта: проекты, использующие output: 'export', помечаются как вероятно безопасные
  • Определение Server Functions: сканирует исходные файлы на наличие директив 'use server' для подтверждения фактического использования Server Components
  • Контекстные предупреждения: предоставляет объяснения, почему проекты уязвимы или безопасны
  • Консервативный подход: предупреждает о пограничных случаях, требующих ручной проверки (например, динамически импортируемые Server Functions)

Пример вывода:

root@kitploit:~
✓ No vulnerable projects found

ℹ Projects with analysis notes:

1. /path/to/project
   ℹ Next.js ^15.1.3 is in vulnerable range, but using React 18 (safe - only React 19 affected)

2. /path/to/another-project
   ℹ Next.js 16.0.5 with React 19 detected, but no 'use server' directives found (likely safe).
     Note: dynamically imported Server Functions require manual review.

Устранение уязвимости

Шаг 1: Запустите сканер

root@kitploit:~
node scan.js -r

Шаг 2: Примените команды исправления

Для каждого уязвимого проекта выполните предложенную команду исправления:

root@kitploit:~
cd /path/to/project
npm install [email protected] [email protected]  # Пример

Или с yarn:

root@kitploit:~
yarn upgrade [email protected] [email protected]

Или с pnpm:

root@kitploit:~
pnpm update [email protected] [email protected]

Шаг 3: Протестируйте приложение

root@kitploit:~
npm test
npm run build

Шаг 4: Проверьте исправление

root@kitploit:~
node scan.js --ci

❓ Часто задаваемые вопросы

В: Проверяет ли этот сканер транзитивные зависимости?

О: В настоящее время сканер проверяет прямые зависимости в package.json. Для глубокого сканирования зависимостей используйте npm audit или yarn audit в сочетании с этим инструментом.

В: Я использую React 18, я затронут?

О: Нет, React 18 НЕ затронут ✅

CVE-2025-55182 затрагивает только Server Components в React 19.x. Сканер корректно определит приложения на React 18 как безопасные, даже если они используют Next.js 15.x или 16.x в уязвимом диапазоне версий.

В: Можно ли использовать это в автоматическом конвейере сборки?

О: Да! Используйте флаг --ci, чтобы сканер завершался с кодом 1 при обнаружении уязвимостей, что приведёт к провалу конвейера. См. примеры интеграции с CI/CD выше.

В: Что делать, если я не могу обновиться немедленно?

О: Временные меры смягчения (обновление — единственное окончательное решение):

  1. ⛔ Отключите Server Components в вашем приложении
  2. 🛡️ Добавьте правила WAF для блокировки подозрительных RSC-полезных нагрузок
  3. 📊 Отслеживайте логи на предмет попыток эксплуатации
  4. ⏰ Запланируйте экстренное окно обновления

⚠️ Важно: Это лишь временные меры. Обновитесь до исправленных версий как можно скорее.

В: Насколько точен этот сканер?

О: Очень точен благодаря интеллектуальному предотвращению ложных срабатываний:

  • ✅ Проверяет точное соответствие версий официальному бюллетеню CVE
  • ✅ Подтверждает зависимость React 19 (исключает ложные срабатывания для React 18)
  • ✅ Определяет конфигурацию статического экспорта
  • ✅ Ищет директивы 'use server' для подтверждения фактической уязвимости
  • ✅ Предоставляет контекстные предупреждения для пограничных случаев

В: А как насчёт динамически импортируемых Server Functions?

О: Сканер определяет директивы 'use server' в ваших исходных файлах. Однако динамически импортируемые Server Functions (загружаемые во время выполнения через import()) могут не обнаруживаться статически. Если сканер сообщает «директивы 'use server' не найдены», но вы используете динамические импорты для Server Functions, вам следует вручную просмотреть эти файлы. Сканер включит примечание, напоминающее об этом.

Вклад в разработку

Вклад приветствуется! Пожалуйста, не стесняйтесь отправлять issues или pull request.

Запуск тестов

root@kitploit:~
# Тестирование на тестовых проектах
./test-scanner.sh

Поддерживаемые фреймворки

Этот сканер определяет все основные фреймворки с поддержкой RSC согласно официальному бюллетеню React:

  • ✅ React / react-server-dom-*
  • ✅ Next.js
  • ✅ react-router (с RSC API)
  • ✅ waku
  • ✅ @parcel/rsc
  • ✅ @vitejs/plugin-rsc
  • ✅ rwsdk (Redwood SDK)
  • ✅ expo

Для дополнительных фреймворков, пожалуйста, создайте issue или отправьте PR.

Ссылки

  • React Official Blog: Critical Security Vulnerability
  • NVD CVE-2025-55182
  • Wiz Research: React2Shell Analysis
  • Microsoft: Defending Against CVE-2025-55182
  • AWS: China-nexus Groups Exploit React2Shell
  • Datadog Security Labs: CVE-2025-55182 RCE Analysis
  • Tenable: CVE-2025-55182 FAQ

Лицензия

Лицензия MIT — см. файл LICENSE

Отказ от ответственности

Этот инструмент предоставляется сообществу как есть, чтобы помочь выявить уязвимые проекты. Всегда проверяйте результаты сканирования и тестируйте обновления в безопасной среде перед развёртыванием в production.

Поддержка

Если вы находите этот инструмент полезным, пожалуйста:

  • ⭐ Поставьте звёздочку этому репозиторию
  • 🐛 Сообщайте об ошибках
  • 🔄 Поделитесь с вашей командой
  • 🤝 Внесите свой вклад в улучшения

Будьте в безопасности и следите за обновлениями зависимостей!

Скачать инструмент
СвойствоЗначение
ID CVECVE-2025-55182
НазваниеReact2Shell
Оценка CVSS10.0 (КРИТИЧЕСКАЯ)
Вектор CVSSAV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Вектор атакиСеть
АутентификацияНе требуется
ВоздействиеПолная компрометация системы
15.5.6
  • 16.0.0 — 16.0.9
  • ПараметрОписание
    -r, --recursiveСканировать все подкаталоги на наличие Node.js-проектов
    -v, --verboseПоказать подробный вывод
    --jsonВывести результаты в формате JSON
    --ciВыход с кодом 1 при обнаружении уязвимостей (для CI/CD)
    -h, --helpПоказать справочное сообщение