В экосистеме React, фреймворка для создания пользовательских интерфейсов, обнаружена опасная уязвимость, связанная с компонентами для сервера (React Server Components). Эта проблема, получившая идентификатор CVE-2026-23869, классифицируется как критическая и позволяет злоумышленникам без каких-либо учётных данных вызывать состояние отказа в обслуживании (Denial of Service). Простота эксплуатации делает её серьёзной угрозой для бизнеса, так как атаковать можно удалённо, просто отправляя специальные HTTP-запросы, что потенциально приводит к простоям веб-сервисов и финансовым потерям.
Суть и механизм эксплуатации уязвимости
Технически уязвимость отнесена к классу неконтролируемого потребления ресурсов (CWE-400) и связана с небезопасной десериализацией данных (CWE-502). Атака направлена на специальные серверные конечные точки, обрабатывающие функции React. Когда уязвимый сервер получает специально сформированный вредоносный запрос, он пытается его обработать, что приводит к резкому, почти стопроцентному скачку загрузки центрального процессора. Один такой запрос может заставить сервер интенсивно работать до целой минуты, прежде чем будет сгенерирована перехватываемая ошибка.
Однако опасность заключается в массовости. Если злоумышленник организует непрерывный поток подобных запросов, вычислительные мощности сервера будут быстро исчерпаны. Это истощение ресурсов делает приложение неспособным обслуживать легитимный трафик реальных пользователей, что равносильно полной остановке работы веб-сервиса. Проблема затрагивает пакеты, ответственные за серверную часть объектной модели документа (Document Object Model, DOM), которые используются популярными сборщиками веб-приложений (bundlers).
Какие системы находятся под угрозой?
Риску подвержены не все приложения на React, а строго те, которые используют компоненты для сервера - архитектурный подход, позволяющий выполнять часть логики React на сервере для повышения производительности. Необходимо проверить зависимости проекта на наличие следующих пакетов в менеджере npm: "react-server-dom-parcel", "react-server-dom-turbopack" и "react-server-dom-webpack". Уязвимость присутствует в трёх основных ветках этих пакетов: версиях с 19.0.0 по 19.0.4, с 19.1.0 по 19.1.5 и с 19.2.0 по 19.2.4.
Клиентские приложения React, которые не задействуют серверные компоненты, не затрагиваются. Аналогично, если ваше приложение не использует фреймворк, сборщик или плагин сборщика, предназначенный для поддержки RSC, эта угроза для вас не актуальна. Таким образом, основной удар приходится на сравнительно новые и сложные проекты, построенные с использованием современных серверных возможностей React.
Меры по устранению угрозы и рекомендации
Команда разработчиков React оперативно отреагировала и выпустила исправления, которые уже перенесены во все уязвимые ветки. Чтобы обезопасить инфраструктуру, администраторам и разработчикам необходимо немедленно обновить упомянутые npm-пакеты до защищённых версий: 19.0.5, 19.1.6 или 19.2.5 в зависимости от используемой линии выпуска. Процесс обновления, как правило, не требует изменений в коде приложения, ограничиваясь корректировкой файла зависимостей.
С точки зрения безопасности инцидента, он служит напоминанием о важности своевременного обновления зависимостей, особенно в быстро развивающихся экосистемах вроде React. Для команд, использующих серверные компоненты, также стоит рассмотреть внедрение дополнительных защитных механизмов на уровне сети или обратного прокси-сервера. Например, настройка лимитов на частоту запросов (rate limiting) к API-эндпоинтам и использование веб-приложенных брандмауэров (Web Application Firewall, WAF) могут помочь смягчить последствия подобных атак, направленных на исчерпание ресурсов, даже если угроза ещё не устранена на уровне кода.
В конечном счёте, данная уязвимость подчёркивает, что новые мощные парадигмы веб-разработки, такие как серверные компоненты, привносят не только преимущества в производительность, но и новые, подчас неочевидные векторы для атак. Это требует от специалистов по информационной безопасности и разработчиков совместных усилий для построения многоуровневой защиты, где своевременное обновление является лишь первым, но критически важным рубежом.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2026-23869
- https://github.com/facebook/react/security/advisories/GHSA-479c-33wc-g2pg
- https://www.imperva.com/blog/react2dos-cve-2026-23869-when-the-flight-protocol-crashes-at-takeoff/