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

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

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

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

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

Категории

Все категории
Loading categories
react2shell-scanner — Сканер безопасности для CVE-2025-55182 — критическая RCE-уязвимость в React Server Components. Сканирование lock-файлов npm/pnpm/yarn, образов Docker, SBOM и живых URL. Автоисправление, вывод в формате SARIF, интеграция с GitHub Actions и Vercel, а также middleware для защиты в рантайме. | Kitploit
Инструменты/GitHubGitHub/gensecaihq/react2shell-scanner
Сканеры уязвимостейБезопасность контейнеровАнализ КодаВеб-безопасностьDevSecOpsОбнаружение СекретовБезопасность Цепочки Поставок
GitHubgensecaihq/react2shell-scanner

react2shell-scanner

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

РепозиторийСайт
5978 месяцев назадПроверено Kitploit

Сканер безопасности для CVE-2025-55182 — критическая RCE-уязвимость в React Server Components. Сканирование lock-файлов npm/pnpm/yarn, образов Docker, SBOM и живых URL. Автоисправление, вывод в формате SARIF, интеграция с GitHub Actions и Vercel, а также middleware для защиты в рантайме.

Поделиться

react2shell-guard

Сканер безопасности для CVE-2025-55182 - критической (CVSS 10.0) уязвимости неаутентифицированного удалённого выполнения кода в React Server Components.

⚠️ ПРЕДУПРЕЖДЕНИЕ

Это сканер безопасности, а НЕ инструмент эксплуатации. Он предназначен для помощи разработчикам и командам безопасности в выявлении уязвимых зависимостей в их проектах.

Это проект с открытым исходным кодом, развиваемый сообществом, предоставляемый «как есть» без каких-либо гарантий, прямых или подразумеваемых. Авторы и участники не несут ответственности за любой ущерб или инциденты безопасности, возникшие в результате использования этого инструмента.

Используйте на свой страх и риск. Всегда проверяйте результаты вручную и следуйте политикам безопасности вашей организации. Если вы обнаружите какие-либо проблемы, ошибки или у вас есть предложения, пожалуйста, внесите свой вклад, чтобы помочь улучшить проект для всех.

🤝 ТРЕБУЮТСЯ УЧАСТНИКИ

Этот проект активно ищет тестировщиков и участников! Хотите ли вы сообщать об ошибках, предлагать функции, улучшать документацию или отправлять код — все вклады приветствуются. Ознакомьтесь с нашим Руководством для участников, чтобы начать.

Благодарности

Этот проект существует, чтобы помочь сообществу отреагировать на CVE-2025-55182. Мы признаём и благодарим:

  • Lachlan Davidson (react2shell.com) — За обнаружение и ответственное раскрытие уязвимости React Server Components (CVE-2025-55182) 29 ноября 2025 года. Сообщество специалистов по безопасности обязано ему благодарностью за усердие в выявлении этого критического дефекта и работу с командами React и Next.js для обеспечения доступности исправлений. Его усилия помогли защитить бесчисленные приложения и пользователей по всему миру. См. его оригинальный PoC для технических деталей.

Быстрый старт

1. Мгновенное сканирование (без установки)

Самый быстрый способ проверить, уязвим ли ваш проект:```bash npx react2shell-guard .

root@kitploit:~
Вот и всё! Это просканирует вашу текущую директорию и сразу покажет результаты.

### 2. Сканирование конкретного проекта```bash
npx react2shell-guard /path/to/your/project

3. Автоисправление уязвимостей

Обнаружены уязвимости? Исправьте их автоматически:```bash

Preview what will be changed

npx react2shell-guard fix --dry-run

Apply fixes

npx react2shell-guard fix

Apply fixes and reinstall dependencies

npx react2shell-guard fix --install

root@kitploit:~
### 4. Сканирование живых URL-адресов

Проверьте, уязвимо ли развернутое приложение:```bash
npx react2shell-guard scan-url https://your-app.com

5. Проверьте, что патч применён

Убедитесь, что развёрнутое исправление работает:```bash npx react2shell-guard verify-patch https://your-app.com

root@kitploit:~
### 6. Сканирование образов контейнеров

Проверьте, содержат ли ваши Docker-образы уязвимые пакеты:```bash
npx react2shell-guard scan-image myapp:latest

7. Создание PR с исправлением (GitHub)

Автоматически создайте PR в GitHub для исправления уязвимостей:```bash npx react2shell-guard create-pr --dry-run # Preview npx react2shell-guard create-pr # Create PR

root@kitploit:~
---

## Что такое CVE-2025-55182?

29 ноября 2025 года исследователь безопасности Лаклан Дэвидсон обнаружил и ответственно раскрыл критическую уязвимость в React Server Components. Проблема заключается в том, как React декодирует полезные нагрузки, отправляемые на конечные точки React Server Function, что позволяет неаутентифицированным злоумышленникам достичь удалённого выполнения кода на затронутых серверах без какого-либо взаимодействия с пользователем.

CVE-2025-55182 оценивается как CVSS 10.0 (Critical) и затрагивает React Server Components (RSC), а также фреймворки, использующие протокол RSC "Flight".

**Затронутые пакеты:**
- `react-server-dom-webpack` 19.0.0, 19.1.0-19.1.1, 19.2.0
- `react-server-dom-parcel` (same versions)
- `react-server-dom-turbopack` (same versions)
- `next` 15.0.0-15.0.4, 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-15.5.6, 16.0.0-16.0.6

**Дополнительная информация:**
- [React Security Advisory](https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components)
- [Wiz Research](https://www.wiz.io/blog/critical-vulnerability-in-react-cve-2025-55182)

---

## Установка (необязательно)

Для частого использования установите глобально:```bash
npm install -g react2shell-guard

Затем используйте без npx:```bash react2shell-guard .

root@kitploit:~
---

## Руководство по использованию

### Базовое сканирование```bash
# Scan current directory
react2shell-guard .

# Scan specific directory
react2shell-guard /path/to/project

# Scan and ignore certain paths
react2shell-guard . --ignore-path "examples/**" "test/**"

Форматы вывода```bash

Human-readable text (default)

react2shell-guard .

JSON output (for scripting)

react2shell-guard . --json

SARIF output (for GitHub Security tab)

react2shell-guard . --sarif

HTML report (standalone, shareable)

react2shell-guard . --html report.html

root@kitploit:~
### Параметры CLI

| Параметр | Описание |
|--------|-------------|
| `--json` | Вывод результатов в формате JSON |
| `--sarif` | Вывод результатов в формате SARIF 2.1.0 |
| `--html <file>` | Создать автономный HTML-отчёт |
| `--no-exit-on-vuln` | Не завершать работу с кодом 1 при обнаружении уязвимостей |
| `--ignore-path <patterns>` | Пути для игнорирования (например, `examples/**`) |
| `--debug` | Включить вывод отладочной информации |

### Коды выхода

| Код | Значение |
|------|---------|
| `0` | Уязвимости не обнаружены |
| `1` | Обнаружены уязвимости |
| `2+` | Фатальная ошибка |

## Сканирование живых URL

Сканируйте живые конечные точки, чтобы определить, уязвимы ли они:```bash
# Scan a single URL
react2shell-guard scan-url https://example.com

# Batch scan from a file (one URL per line)
react2shell-guard scan-url urls.txt --list

# With options
react2shell-guard scan-url https://example.com --timeout 5000 --json

Как работает сканирование живых URL

Сканер использует пассивное снятие отпечатков для обнаружения уязвимых конечных точек React Server Components без эксплуатации уязвимости:

  1. Пробный запрос: Отправляет специально сформированный POST-запрос, имитирующий вызов RSC Server Action, с минимальной нагрузкой:

    • Использует тип содержимого multipart/form-data со структурой данных, похожей на RSC
    • Включает заголовок Next-Action для запуска обработки Server Action
  2. Анализ ответа: Анализирует HTTP-ответ на наличие сигнатур уязвимости:

    • Проверяет код состояния HTTP 500 (ответ об ошибке)
    • Сопоставляет тело ответа с шаблонами ошибок протокола RSC Flight:
      • ^[0-9]+:E{ — формат ошибки протокола RSC Flight
      • "digest":"...RSC — дайджест RSC в ответах об ошибках
      • ReactServerComponentsError — имена классов ошибок React
      • text/x-component.*error — тип содержимого ошибки компонента
  3. Ненавязчивость: Это чисто механизм обнаружения — он не выполняет вредоносную нагрузку и не эксплуатирует уязвимость. Пробный запрос использует безвредные данные, которые вызывают ответы об ошибках на уязвимых серверах, но не причиняют вреда.

Примечание: Положительное обнаружение означает, что на сервере запущена уязвимая версия и он вернул сигнатуру ошибки, специфичную для RSC. Это НЕ означает, что сервер был скомпрометирован.

Параметры сканера URL

Проверка исправления

Проверка, был ли целевой хост исправлен против уязвимости:```bash

Verify patch status (runs multiple scans for accuracy)

react2shell-guard verify-patch https://example.com

With JSON output

react2shell-guard verify-patch https://example.com --json

root@kitploit:~
### Как работает проверка патчей

Проверка патчей выполняет **несколько последовательных сканирований** (по умолчанию: 3) с короткими задержками между ними для обеспечения точного обнаружения:

1. **Несколько проб**: Запускает одну и ту же пассивную проверку отпечатков 3 раза с задержками в 500 мс
2. **Оценка уверенности**:
   - **Высокая уверенность**: 2+ успешных сканирования с согласованными результатами
   - **Средняя уверенность**: 1 успешное сканирование с однозначным результатом
   - **Низкая уверенность**: Все сканирования завершились неудачей или результаты неоднозначны
3. **Классификация результатов**:
   - **PATCHED**: сигнатуры уязвимостей не обнаружены ни в одном успешном сканировании
   - **VULNERABLE**: сигнатура уязвимости обнаружена в одном или нескольких сканированиях
   - **Inconclusive**: смешанные результаты или все сканирования завершились неудачей

Такой подход с несколькими сканированиями снижает количество ложных срабатываний из-за временных проблем с сетью и обеспечивает более высокую уверенность в статусе патча.

### Параметры проверки

| Параметр | Описание |
|--------|-------------|
| `--timeout <ms>` | Таймаут запроса в миллисекундах (по умолчанию: 10000) |
| `--json` | Выводить результаты в формате JSON |
| `--skip-ssl-verify` | Пропустить проверку SSL-сертификата |

## Сканирование контейнерных образов

Сканирование Docker/OCI контейнерных образов на наличие уязвимых пакетов:```bash
# Scan a local or remote image
react2shell-guard scan-image myapp:latest

# Scan from a registry
react2shell-guard scan-image registry.example.com/myapp:v1.0

# Skip pulling (use local image only)
react2shell-guard scan-image myapp:latest --skip-pull

# With JSON output
react2shell-guard scan-image myapp:latest --json

# With SARIF output
react2shell-guard scan-image myapp:latest --sarif

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

Требования:

  • Docker должен быть установлен и запущен
  • Достаточно места на диске для извлечения образа

Интеграция с развёртыванием Vercel

Блокируйте уязвимые развёртывания до того, как они попадут в продакшен:```bash

Run as part of your build command

react2shell-guard vercel-check

In package.json

{ "scripts": { "vercel-build": "react2shell-guard vercel-check && next build" } }

Or in vercel.json

{ "buildCommand": "npx react2shell-guard vercel-check && npm run build" }

root@kitploit:~
### Параметры Vercel Check

| Опция | Описание |
|--------|-------------|
| `--no-fail` | Предупреждать, но не завершать сборку ошибкой при обнаружении уязвимостей |
| `--ignore-path <patterns>` | Пути, которые следует игнорировать (glob-шаблоны) |
| `--debug` | Включить отладочный вывод |

## Автоматизация GitHub PR

Автоматическое создание pull request для исправления уязвимостей:```bash
# Preview what will be done
react2shell-guard create-pr --dry-run

# Create branch and PR
react2shell-guard create-pr

# Create branch but don't push/create PR
react2shell-guard create-pr --no-push

# Custom branch name
react2shell-guard create-pr --branch fix/security-update

Параметры создания PR

OptionDescription
--branch <name>Имя ветки для исправления (по умолчанию: fix/cve-2025-55182)
--dry-runПоказать, что будет сделано, без внесения изменений
--no-pushСоздать ветку и коммиты, но не пушить и не создавать PR

Требования:

  • GitHub CLI (gh) должен быть установлен и авторизован
  • Необходимо находиться в git-репозитории с удалённым (remote)

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

react2shell-guard - CVE-2025-55182 Scanner ──────────────────────────────────────────────────

Scanned 1 project(s)

✗ my-app [VULNERABLE] Path: /path/to/my-app Framework: nextjs v15.2.1 App Router: Yes (RSC enabled)

Vulnerabilities found: - react-server-dom-webpack @ 19.1.0 Upgrade to: 19.1.2 Advisory: https://react.dev/blog/2025/12/03/... - next @ 15.2.1 Upgrade to: 15.2.6 Advisory: https://react.dev/blog/2025/12/03/...

────────────────────────────────────────────────── VULNERABLE - Action required! Upgrade affected packages to patched versions immediately.

root@kitploit:~
## Интеграция с GitHub Actions

> **Примечание:** Мы активно выпускаем новые версии с улучшенными шаблонами обнаружения и исправлениями. Используйте `@v1` для стабильных релизов или `@latest` для новейшей версии.

### GitHub Marketplace Action

Самый простой способ интеграции — использовать наш официальный GitHub Action:```yaml
name: Security Scan

on: [push, pull_request]

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

      - name: Scan for CVE-2025-55182
        uses: gensecaihq/react2shell-scanner@v1
        with:
          path: '.'
          fail-on-vuln: true

Полнофункциональная настройка (SARIF + комментарии к PR)```yaml

name: Security Scan

on: [push, pull_request]

jobs: scan: runs-on: ubuntu-latest permissions: security-events: write # For SARIF upload pull-requests: write # For PR comments

root@kitploit:~
steps:
  - uses: actions/checkout@v4

  - name: Scan for CVE-2025-55182
    uses: gensecaihq/react2shell-scanner@v1
    with:
      path: '.'
      format: sarif
      fail-on-vuln: true
      upload-sarif: true        # Upload to GitHub Security tab
      add-pr-comment: true      # Comment on PRs with results
      ignore-paths: 'examples/**,test/fixtures/**'
root@kitploit:~
### Входные параметры действия

| Параметр | Описание | По умолчанию |
|-------|-------------|---------|
| `path` | Путь для сканирования | `.` |
| `scan-type` | Тип сканирования: `repo`, `sbom`, `container` | `repo` |
| `format` | Формат вывода: `text`, `json`, `sarif` | `text` |
| `fail-on-vuln` | Завершить с ошибкой при обнаружении уязвимостей | `true` |
| `upload-sarif` | Загрузить SARIF в GitHub Security | `false` |
| `add-pr-comment` | Добавить комментарий к PR с результатами | `false` |
| `ignore-paths` | Пути для игнорирования через запятую | `''` |
| `sbom-file` | Путь к файлу SBOM (когда scan-type равно sbom) | `''` |
| `container-image` | Docker-образ (когда scan-type равно container) | `''` |

### Выходные параметры действия

| Выходной параметр | Описание |
|--------|-------------|
| `vulnerable` | Были ли найдены уязвимости (`true`/`false`) |
| `findings-count` | Количество уязвимых пакетов |
| `scan-result` | Полный результат сканирования (формат JSON) |
| `sarif-file` | Путь к выходному файлу SARIF |

### Сканирование образов контейнеров```yaml
- name: Scan Docker image
  uses: gensecaihq/react2shell-scanner@v1
  with:
    scan-type: container
    container-image: myapp:latest

Сканирование файлов SBOM```yaml

  • name: Scan SBOM uses: gensecaihq/react2shell-scanner@v1 with: scan-type: sbom sbom-file: sbom.json
root@kitploit:~
### Ручное использование CLI

Если вы предпочитаете использовать CLI напрямую:```yaml
- name: Setup Node.js
  uses: actions/setup-node@v4
  with:
    node-version: '20'

- name: Scan for vulnerabilities
  run: npx react2shell-guard@latest .

Поддерживаемые менеджеры пакетов

react2shell-guard автоматически обнаруживает и анализирует lock-файлы следующих менеджеров:

  • npm — package-lock.json (форматы v2 и v3)
  • pnpm — pnpm-lock.yaml
  • yarn — yarn.lock (форматы Classic и Berry)

Возможности

  • Быстрое сканирование — анализирует lock-файлы напрямую, без необходимости установки зависимостей
  • Поддержка монорепозиториев — автоматически обнаруживает и сканирует все проекты
  • Определение фреймворков — определяет использование Next.js и App Router
  • Несколько форматов вывода — отчёты в форматах Text, JSON, SARIF и HTML
  • Готовность к CI/CD — коды выхода и интеграция с GitHub Actions
  • Ноль сетевых запросов — работает полностью офлайн
  • Автоисправление — автоматическое обновление уязвимых зависимостей
  • Pre-commit хуки — блокировка коммитов с уязвимыми зависимостями
  • Сканирование SBOM — сканирование файлов CycloneDX SBOM
  • Интеграция MCP — поддержка ИИ-ассистентов через Model Context Protocol
  • Защита во время выполнения — middleware для Express.js/Next.js для защиты в глубину
  • Сканирование живых URL — сканирование развёрнутых приложений на уязвимости
  • Сканирование контейнеров — сканирование Docker/OCI-образов на наличие уязвимых пакетов
  • Интеграция с Vercel — блокировка уязвимых развёртываний до продакшена
  • Автоматизация GitHub PR — автоматическое создание исправляющих PR одной командой

Автоисправление уязвимостей

Автоматически обновит ваш package.json, чтобы использовать пропатченные версии:```bash

Preview changes (dry run)

react2shell-guard fix --dry-run

Apply fixes

react2shell-guard fix

Apply fixes and run npm/pnpm/yarn install

react2shell-guard fix --install

root@kitploit:~
## Pre-Commit Hooks

Установите git-хуки, чтобы предотвратить коммит уязвимых зависимостей:```bash
# Auto-detect hook framework and install
react2shell-guard init-hooks

# Preview what would be installed
react2shell-guard init-hooks --dry-run

# Force specific hook type
react2shell-guard init-hooks --hook-type husky
react2shell-guard init-hooks --hook-type lefthook
react2shell-guard init-hooks --hook-type standalone

Supported hook frameworks:

  • Husky - Добавляет в .husky/pre-commit
  • Lefthook - Создаёт/обновляет lefthook.yml
  • Standalone - Создаёт .git/hooks/pre-commit

Хук будет блокировать коммиты, когда package.json содержит уязвимые зависимости, и предложит запустить react2shell-guard fix для исправления.

Сканирование SBOM

Сканирование CycloneDX SBOM-файлов на наличие уязвимостей:```bash

Scan a CycloneDX SBOM

react2shell-guard scan-sbom bom.json

With JSON output

react2shell-guard scan-sbom bom.json --json

With SARIF output

react2shell-guard scan-sbom bom.json --sarif

root@kitploit:~
## MCP-сервер (интеграция с ИИ-ассистентом)

Запустите MCP-сервер для интеграции с ИИ-ассистентом:```bash
react2shell-guard mcp-server

Доступные MCP-инструменты:

  • scan_repo - Сканировать репозиторий на наличие уязвимостей
  • scan_sbom - Сканировать файл SBOM в формате CycloneDX

Настройка с помощью MCP-совместимых клиентов (пример конфигурации):```json { "mcpServers": { "react2shell-guard": { "command": "npx", "args": ["react2shell-guard", "mcp-server"] } } }

root@kitploit:~
## Промежуточное ПО защиты во время выполнения

Промежуточное ПО эшелонированной защиты, которое обнаруживает и блокирует попытки эксплуатации CVE-2025-55182 во время выполнения.

### Express.js```typescript
import express from 'express';
import { createExpressMiddleware } from 'react2shell-guard/middleware';

const app = express();

// Add raw body parser for RSC payloads
app.use(express.raw({ type: 'text/x-component' }));
app.use(express.json());

// Add protection middleware
app.use(createExpressMiddleware({
  action: 'block',  // 'block' | 'log' | 'alert'
  onAlert: (result, req) => {
    // Send to your alerting system (Slack, PagerDuty, etc.)
    console.error('CVE-2025-55182 exploit attempt:', result);
  },
  skipPaths: ['/health', '/metrics'],
}));

Next.js```typescript

// middleware.ts import { withReact2ShellGuard } from 'react2shell-guard/middleware';

export const middleware = withReact2ShellGuard({ action: 'block', rscEndpointsOnly: true, // Only check RSC endpoints (recommended) });

export const config = { matcher: ['/((?!_next/static|_next/image|favicon.ico).*)'], };

root@kitploit:~
**Обнаруженные паттерны:**
- Инъекция сериализованных функций
- Попытки загрязнения прототипа
- Некорректные ссылки на модули
- Вмешательство в серверные действия
- Закодированные вредоносные нагрузки
- Злоупотребление форматом потоковой передачи RSC

## Использование API```typescript
import { scan } from 'react2shell-guard';

const result = scan({
  path: '/path/to/project',
  ignorePaths: ['examples/**'],
  debug: false,
});

console.log(result.vulnerable); // boolean
console.log(result.projects);   // ProjectResult[]

Схема вывода JSON```json

{ "cve": "CVE-2025-55182", "vulnerable": true, "scanTime": "2025-12-04T10:30:00Z", "projects": [ { "name": "my-app", "path": "/path/to/my-app", "framework": { "type": "nextjs", "version": "15.2.1", "appRouterDetected": true }, "findings": [ { "package": "react-server-dom-webpack", "currentVersion": "19.1.0", "fixedVersion": "19.1.2", "severity": "critical", "advisoryUrl": "https://..." } ], "vulnerable": true } ], "errors": [] }

root@kitploit:~
## Устранение

**Автоматическое исправление (рекомендуется):**```bash
react2shell-guard fix --install

Ручное обновление - пакеты React:```bash npm install [email protected] # or 19.0.1, 19.2.1

root@kitploit:~
**Ручное обновление - Next.js:**```bash
npm install [email protected]  # or other patched version for your release line

Исправленные версии Next.js по линиям релизов:

  • 15.0.x → 15.0.5
  • 15.1.x → 15.1.9
  • 15.2.x → 15.2.6
  • 15.3.x → 15.3.6
  • 15.4.x → 15.4.8
  • 15.5.x → 15.5.7
  • 16.0.x → 16.0.7

Разработка```bash

Install dependencies

npm install

Build

npm run build

Run tests

npm test

Run in development mode

npm run dev

root@kitploit:~
## Лицензия

MIT
Скачать инструмент
ПараметрОписание
--listОбрабатывать цель как файл, содержащий URL-адреса
--threads <n>Количество параллельных потоков (по умолчанию: 10)
--timeout <ms>Тайм-аут запроса в миллисекундах (по умолчанию: 10000)
--jsonВыводить результаты в формате JSON
--skip-ssl-verifyПропустить проверку SSL-сертификатов
--verboseПоказывать все результаты, включая незатронутые уязвимостью хосты
ОпцияОписание
--timeout <ms>Тайм-аут операции в миллисекундах (по умолчанию: 120000)
--skip-pullПропустить загрузку образа из реестра (использовать только локальный)
--jsonВыводить результаты в формате JSON
--sarifВыводить результаты в формате SARIF 2.1.0
--no-exit-on-vulnНе завершаться с кодом 1 при обнаружении уязвимостей
--debugВключить вывод отладочной информации