⚠️ DoS в React Server Components: один POST и продакшн лёг
Казалось, после громкой RCE () в React Server Components (RSC) можно выдохнуть, но нет.
Исследователи из Winfunc, Flatt Security и Tencent нашли новую уязвимость — CVE-2026-23864, которая бьет не по конфиденциальности, а по доступности: любой RSC-сервер можно отправить в нокаут тривиальным запросом, минуя любые формы авторизации.
На радарах https://www.cyberok.ru/skipa.html
• ~26 000 хостов, использующих уязвимую цепочку React / Next.js
• 8 500+ доступных извне, потенциально уязвимы.
• Что происходит внутри корпоративных сетей — остается за кадром.
Клиенты PentOps были своевременно уведомлены.
💥 Суть уязвимости
В парсере react-server-dom, который обрабатывает Server Actions, есть фундаментальная асимметрия:
крошечный POST-запрос от атакующего → неконтролируемая рекурсия / аллокация памяти на сервере.
Результат:
✖️ 100% CPU
✖️ Memory spike
✖️ Node.js падает с OOM или зависает
✖️ Сервис перестаёт отвечать
Уязвимость детектируется как на уровне библиотек React, так и в готовой инфраструктуре Next.js, поэтому под удар попадает не отдельная реализация, а вся экосистема RSC.
👻 Активная эксплуатация
Фиксируются сигналы In-the-Wild.
После публикации PoC для предыдущих уязвимостей, злоумышленники начали активно фаззить RSC-эндпоинты.
Для атаки достаточно знать, что сайт написан на Next.js App Router. Это увеличивает вероятность автоматизированных атак.
🧱 Уязвимые версии и цепочка зависимостей
Здесь важно понимать: вы уязвимы, если используете затронутую версию React напрямую ИЛИ транзитивно через фреймворк.
• React: ветки 19.0.0 – 19.2.3.
• Next.js: версии 13.x – 16.x (включает зависимости react-server-dom-webpack).
• Экосистема: react-router, waku,
https://t.me/parcel/rsc – все, кто внедрил экспериментальные RSC.
🚨 Индикаторы атаки (IoC)
• L7-аномалии: POST-запросы к эндпоинтам с заголовками RSC или Next-Router-State-Tree, содержащие аномально глубокую вложенность JSON (рекурсивные массивы) или флаги командной строки (-f, --).
• Ресурсный паттерн: Синхронный всплеск CPU до 100% и резкий рост потребления RAM (Memory Spike) при обработке единичного входящего POST-пакета.
• Runtime-логи: Задержки Event Loop более 500 мс и циклические перезапуски процессов Node.js с кодом 137 (OOM Killer).
🛡 Рекомендации по защите
1. Срочное обновиться до актуальных версий!
• React: Переход на версии 19.0.4, 19.1.5, 19.2.4 и выше.
• Next.js: Обновление до 15.0.8, 15.5.10 или 16.1.5+.
Важно: Если вы используете Next.js 13 или 14, вы находитесь в зоне максимального риска – официальных исправлений для этих веток не будет.
2. Настройте WAF на детектирование аномально глубокой вложенности или специфических цепочек объектов в POST-запросах к RSC-эндпоинтам (обычно содержат заголовок Next-Router-State-Tree или RSC). Ограничьте количество POST-запросов к API-роутам с одного IP.
3. В контейнеризованных средах жестко ограничьте лимиты памяти. Это позволит перезагрузить конкретный упавший под, не затрагивая соседние сервисы.