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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-55182 — Исследование магистерской диссертации по CVE-2025-55182 (React2Shell). Модульная платформа эксплуатации с 6 сценариями атак (удалённое выполнение кода (RCE), эксфильтрация, дефейс), интерактивный обратный shell и полная уязвимая лаборатория для изучения Prototype Pollution и Insecure Deserialization в React Server Components. | Kitploit
Инструменты/GitHubGitHub/devianntsec/cve-2025-55182
Фреймворки для эксплойтовАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийПост-эксплуатацияТестирование на ПроникновениеСтатьи и ИсследованияОбучение и ОбразованиеИнструмент Удаленного Доступа
Разработка Полезной Нагрузки
Лаборатории и Практика
GitHubdevianntsec/cve-2025-55182

CVE-2025-55182

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

Популярное

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

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

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

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

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

Описание

Исследование магистерской диссертации по CVE-2025-55182 (React2Shell). Модульная платформа эксплуатации с 6 сценариями атак (удалённое выполнение кода (RCE), эксфильтрация, дефейс), интерактивный обратный shell и полная уязвимая лаборатория для изучения Prototype Pollution и Insecure Deserialization в React Server Components.

Поделиться

CVE-2025-55182 — React2Shell: продвинутый эксплойт и исследование магистерской диссертации

Platform Language License: MIT Research CVSS

Небезопасная десериализация + загрязнение прототипа в React Server Components
Неаутентифицированное удаленное выполнение кода через Server Actions Next.js
Затрагивает: React 19.0.0 - 19.2.0 · Исправление: React 19.0.1 / 19.1.2 / 19.2.1 (3 декабря 2025 года)


Демонстрация продвинутого эксплойта - базовые команды RCE, интерактивная оболочка и множественные векторы атак на уязвимое приложение Next.js

Описание

Этот репозиторий содержит моё исследование магистерской диссертации по CVE-2025-55182, критической (CVSS v3.1: 10.0) уязвимости удаленного выполнения кода в React Server Components.

Уязвимость возникает из-за небезопасного механизма десериализации в протоколе React Flight. При обработке серверных действий (Server Actions) Next.js десериализует входящие multipart-полезные нагрузки без надлежащей проверки. Злоумышленник может сформировать вредоносную нагрузку, которая загрязняет цепочку прототипов и внедряет произвольный JavaScript, выполняющийся на сервере через конструктор Function (и далее через child_process.execSync()).

Примечание о CVE-2025-66478: Компания Vercel выпустила параллельный CVE для отслеживания влияния этой же уязвимости на Next.js. Поскольку Next.js использует React в виде вендорной копии (vendored), многие сканеры зависимостей не обнаруживают его автоматически как уязвимый. Национальная база данных уязвимостей США (NVD) официально отклонила CVE-2025-66478 как дубликат CVE-2025-55182, хотя она продолжает упоминаться в информационном бюллетене безопасности самой Vercel.

Последующие уязвимости: Команда React впоследствии раскрыла две дополнительные проблемы, присутствовавшие в начальных версиях исправлений (19.0.1, 19.1.2, 19.2.1): CVE-2025-55184 (отказ в обслуживании, CVSS 7.5) и CVE-2025-55183 (раскрытие исходного кода, CVSS 5.3). Пользователям следует обновиться до версии 19.0.2, 19.1.3 или 19.2.2, чтобы устранить все три уязвимости.

Мой вклад

АспектОписание
Четыре модуля атакиУдаление проектов, дефейс веб-сайта, кража переменных окружения, отключение серверов
Интерактивная оболочкаПостоянная оболочка со специальными командами и возможностью восстановления
Стабильная эксфильтрацияПострочное чтение для обхода ограничений размера HTTP-заголовков
Скрипт восстановленияБезопасное восстановление лабораторной среды после атак
Академическая документацияАнализ первопричины, разбор полезной нагрузки и временная шкала уязвимости

Структура репозитория

CVE-2025-55182/
├── README.md                        # Этот файл
├── LICENSE                          # Лицензия MIT
│
├── exploit/
│   ├── exploit-explanation.md       # Документация по использованию эксплойта
│   └── react2shell.py               # Основной эксплойт — 4 модуля атаки + интерактивная оболочка
│
├── vulnerable-app/                  # Уязвимое приложение Next.js
│   ├── README.md                    # Оригинальные сведения о vulnapp
│   ├── package.json                 # React 19.0.0 (уязвимая версия)
│   ├── app/                         # Исходный код приложения
│   ├── curl_id.sh                   # Оригинальный скрипт эксплойта (от zack0x01)
│   └── scripts/
│       └── restore.sh               # Скрипт восстановления (мой вклад)
│
└── docs/
    ├── screenshots/                 # Демонстрации эксплуатации
    │   ├── 01-app-initial.png
    │   ├── 02-rce-basic.png
    │   ├── 03-interactive-shell.png
    │   ├── 04-no-payload.png
    │   ├── 05-delete-result.png
    │   ├── 06-deface.png
    │   ├── 07-shutdown-servers.png
    │   ├── 08-restore-from-script.png
    │   └── 09-restore-from-interactive-shell.png
    │
    └── analysis/
        ├── 01-root-cause.md         # Анализ первопричины уязвимости
        ├── 02-payload-breakdown.md  # Структура полезной нагрузки и поток выполнения
        └── 03-timeline.md           # Временная шкала CVE

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

Предварительные требования

  • Node.js 18+ и npm
  • Python 3.9+
  • Уязвимое приложение Next.js (предоставлено в vulnerable-app/)
  • Рекомендуется изолированная ВМ для тестирования

Шаг 1 — Запуск уязвимого приложения

cd vulnerable-app
npm install --legacy-peer-deps
npm run dev
# Приложение доступно по адресу http://localhost:3000

Шаг 2 — Запуск эксплойта

cd ../exploit

# Проверить, уязвима ли цель
python3 react2shell.py -u http://localhost:3000 --check

# Выполнить одиночную команду
python3 react2shell.py -u http://localhost:3000 -c "whoami"

# Режим интерактивной оболочки
python3 react2shell.py -u http://localhost:3000 -i

Модули атаки

МодульКомандаОписаниеВоздействие
Удаление проектов--delete-projectsУдаляет все проекты с панели управленияУничтожение данных
Дефейс--deface "сообщение"Заменяет главную страницуДефейс
Кража окружения--steal-envПохищает переменные окруженияЭксфильтрация
Отключение серверов--shutdown-serversОтключает все серверыОтказ в обслуживании

Технический обзор

Первопричина уязвимости

React Server Components используют собственный механизм сериализации/десериализации (протокол "Flight") для передачи данных компонентов с сервера на клиент. При обработке серверных действий сервер десериализует входящие полезные нагрузки без надлежащей проверки.

Основной недостаток — доверие к поведению: десериализатор проверяет typeof obj.then === 'function' для идентификации Promise, не проверяя, принадлежит ли это свойство непосредственно объекту. Это позволяет злоумышленнику отравить Object.prototype.then, делая каждый обычный объект thenable.

Злоумышленник может сформировать вредоносную нагрузку, которая:

  1. Загрязняет цепочку прототипов с помощью __proto__:then
  2. Перенаправляет разрешение на конструктор Function через $1:constructor:constructor
  3. Выполняет произвольный JavaScript через new Function(_prefix)
  4. Запускает системные команды через process.mainModule.require('child_process').execSync()
  5. Эксфильтрует вывод через заголовок HTTP-ответа X-Action-Redirect
Пользовательский режим (неаутентифицированный)
  │
  ├─ POST / (конечная точка Server Action Next.js)
  │    ├─ Заголовки: Next-Action: x
  │    └─ Тело multipart со вредоносным JSON
  │
  └─ Десериализатор React Flight обрабатывает нагрузку
       └─ Загрязнение прототипа через __proto__:then
            └─ Конструктор Function достигнут через $1:constructor:constructor
                 └─ new Function(_prefix) выполняет JavaScript злоумышленника
                      └─ execSync() запускает системную команду
                           └─ Вывод встраивается в ошибку NEXT_REDIRECT
                                └─ Next.js преобразует в заголовок X-Action-Redirect

Уточнение области действия

Скачать инструмент