Критическая уязвимость в React и Next.js: удалённое выполнение кода угрожает веб-приложениям

vulnerability

В экосистеме React обнаружены критические уязвимости удалённого выполнения кода (RCE), затрагивающие серверные компоненты (RSC) и фреймворки, такие как Next.js. Проблемы, получившие идентификаторы CVE-2025-55182 и CVE-2025-66478, имеют максимальный уровень опасности и позволяют злоумышленнику выполнять произвольный код на сервере без аутентификации. Уязвимы стандартные конфигурации многих популярных проектов.

Подробности об уязвимостях

Уязвимости коренятся в реализации протокола "Flight" для серверных компонентов React (RSC). Проблема заключается в небезопасной десериализации данных, получаемых сервером. Атакующий может отправить специально сформированный HTTP-запрос, который будет некорректно обработан. В результате данные злоумышленника получают возможность влиять на логику выполнения на стороне сервера, что приводит к полному удалённому выполнению кода. По данным исследователей, эксплуатация уязвимости демонстрирует почти стопроцентную надёжность в стандартных конфигурациях.

Уязвимость напрямую затрагивает пакеты "react-server-dom-webpack", "react-server-dom-parcel" и "react-server-dom-turbopack" в версиях React 19.0.0, 19.1.0, 19.1.1 и 19.2.0. Однако угроза распространяется значительно шире из-за зависимости множества фреймворков и инструментов от этих пакетов. В группе риска находятся Next.js (версии 15.x, 16.x и canary-сборки начиная с 14.3.0-canary.77), а также плагины и фреймворки, такие как Vite RSC plugin, Parcel RSC plugin, React Router (в режиме RSC), RedwoodSDK и Waku. Важно отметить, что даже приложение, созданное с помощью стандартной команды "create-next-app" без каких-либо модификаций, оказывается уязвимым.

Исследовательские данные указывают на широкое распространение проблемы. Например, аналитика показывает, что 39% облачных сред содержат уязвимые экземпляры Next.js или React. При этом 44% всех облачных сред имеют публично доступные экземпляры Next.js, что значительно увеличивает потенциальную поверхность атаки. Уязвимости были публично раскрыты, что повышает риск их активной эксплуатации в ближайшее время.

Разработчикам и компаниям необходимо немедленно принять меры по устранению рисков. Во-первых, требуется обновить React до исправленных версий: 19.0.1, 19.1.2 или 19.2.1. Во-вторых, необходимо обновить все зависимые фреймворки и инструменты. Пользователям Next.js следует перейти на последние патченные стабильные выпуски в рамках своей основной версии, например, 15.0.5, 15.1.9, 15.4.8, 15.3.6, 15.5.7 или 16.0.7. Тем, кто использовал canary-версии, настоятельно рекомендуется вернуться к стабильному релизу.

Поскольку процесс массового обновления может занять время, критически важно усилить мониторинг. Специалисты рекомендуют ограничить доступ к конечным точкам RSC, если это возможно в рамках бизнес-логики приложения. Кроме того, необходимо настроить системы обнаружения вторжений (IDS) и мониторинга на предмет аномальных HTTP-запросов, содержащих подозрительные вредоносные полезные нагрузки. Регулярный аудит зависимостей и инвентаризация всех приложений, использующих уязвимые версии React и Next.js, являются обязательной практикой.

Обнаруженные уязвимости представляют собой серьёзную угрозу для безопасности веб-приложений, построенных на современном стеке React. Их критичность, лёгкость эксплуатации и широкий охват экосистемы требуют безотлагательных действий от всего сообщества разработчиков и DevOps-инженеров. Своевременное применение патчей - единственный надёжный способ предотвратить потенциальный компрометацию систем и утечку данных.

Ссылки

Комментарии: 0