Уязвимость React4Shell: защищаем веб-серверы от CVE-2025-55182

Миллионы сайтов, построенные на базе React и Next.js, содержат простую в эксплуатации уязвимость, приводящую к полному захвату сервера. Как проверить свой сервер и защитить веб-активы?

Уязвимость CVE-2025-55182 в React и Next.js

3 декабря стало известно о скоординированном устранении критической уязвимости CVE-2025-55182 (CVSSv3 — 10), которая содержалась в React server components (RSC), а также во множестве производных проектов и фреймворков: Next.js, React Router RSC preview, Redwood SDK, Waku, RSC-плагинах Vite и Parcel. Уязвимость позволяет любому интернет-пользователю без всякой аутентификации отправить на уязвимый сервер запрос и добиться выполнения произвольного кода. Учитывая, что на базе React и Next.js построены десятки миллионов сайтов, включая Airbnb и Netflix, а уязвимые версии компонентов найдены примерно в 39% облачных инфраструктур, масштаб эксплуатации может быть очень серьезным. Меры по защите своих онлайн-сервисов нужно принимать незамедлительно.

Для уязвимости Next.js сначала завели отдельную CVE-2025-66478, но ее сочли дубликатом, поэтому дефект Next.js тоже относится к CVE-2025-55182.

Где и как работает уязвимость React4Shell

React — это популярная библиотека JavaScript для создания пользовательских интерфейсов веб-приложений.  Благодаря компонентам RSC, появившимся в React 18 в 2020 году, часть работы по сборке веб-страницы выполняется не в браузере, а на сервере. Код веб-страницы может вызывать функции React, которые сработают на сервере, получить от них результат выполнения и вставить его в веб-страницу. Это позволяет ускорить некоторые веб-сайты — браузеру не нужно загружать лишний код. RSC разделяет приложение на серверные и клиентские компоненты, где первые могут выполнять серверные операции (запросы к БД, доступ к секретам, сложные вычисления), а вторые остаются интерактивными на машине у пользователя.  Для быстрой потоковой передачи сериализованной информации между клиентом и сервером используется специальный легкий протокол Flight, работающий на основе HTTP.

Как раз в обработке запросов Flight и кроется CVE-2025-55182 — которая заключается в небезопасной десериализации потоков данных. Уязвимости подвержены React Server Components версий 19.0.0, 19.1.0, 19.1.1, 19.2.0, а точнее пакеты react-server-dom-parcel, react-server-dom-turbopack и react-server-dom-webpack.  Уязвимые версии Next.js: 15.0.4, 15.1.8, 15.2.5, 15.3.5, 15.4.7, 15.5.6, 16.0.6.

Для эксплуатации уязвимости, атакующий может отправить серверу простой http-запрос, и еще до аутентификации и любых проверок этот запрос может инициировать запуск процесса на сервере с правами самого React.

Данных о реальной эксплуатации CVE-2025-55182 пока нет, но эксперты солидарны, что она возможна и вероятней всего будет масштабной. Wiz называют свой тестовый RCE-эксплойт работающим почти со 100% надежностью. На GitHub уже доступен прототип эксплойта, поэтому злоумышленникам не составит труда доработать его и начать массовые атаки.

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

Но если проект не использует серверные функции, это не означает что он защищен — RSC все равно могут быть активны. Сайты и сервисы, собранные на свежих версиях React с настройками по умолчанию (например приложение на Next.js, собранное при помощи create-next-app), будут уязвимы.

Меры защиты от эксплуатации CVE-2025-55182

Обновления. Пользователи React должны обновиться до исправленных версий 19.0.1, 19.1.2, 19.2.1. Пользователи Next.js — до версий 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7.  Подробные инструкции по обновления компонента react-server для React Router, Expo, Redwood SDK, Waku и других проектов даны в блоге React.

Защита облачных провайдеров. Крупные провайдеры выпустили правила для своих веб-фильтров уровня приложений (WAF), предотвращающие эксплуатацию уязвимостей:

  • Akamai (правила для пользователей App & API Protector);
  • AWS (правила AWS WAF включены в стандартный набор, но требуют ручной активации);
  • Cloudflare (защита всех клиентов, включая тех, кто на бесплатном тарифе. Работает, если трафик к React-приложению проксирован через Cloudflare WAF. Клиенты на профессиональных и корпоративных тарифах должны проверить, что правило активно);
  • Google Cloud (правила Cloud Armor для Firebase Hosting и Firebase App Hosting применены автоматически);
  • Vercel (правила применены автоматически).

Тем не менее, все провайдеры подчеркивают, что защита WAF позволяет только выиграть время для планового патчинга и на всех проектах все равно необходимо обновлять компоненты RSC.

Защита веб-сервисов на собственных серверах. Наименее инвазивным решением будет применить на NGWF или WAF правила детектирования, предотвращающие эксплуатацию React4Shell. Большинство поставщиков уже выпустили необходимые наборы правил, но также их можно подготовить самостоятельно, например на базе нашего списка опасных POST-запросов). Пользователи Kaspersky NGFW защищены от эксплуатации React4Shell.

Kaspersky NGFW vs. cve-2025-55182

Детектирование cve-2025-55182 при помощи Kaspersky NGFW

Если тонкий анализ и фильтрация веб-трафика в ваших условиях невозможны, идентифицируйте все серверы, на которых доступны RSC (server function endpoints) и существенно ограничьте к ним доступ. Для внутренних сервисов можно заблокировать обращения со всех недоверенных диапазонов IP, для публичных — усилить фильтрацию по репутации IP и ограничение частоты доступа (rate limiting).

Дополнительным уровнем защиты будет агент EPP/EDR на серверах с RSC. Он поможет детектировать аномалии поведения react-server после эксплуатации уязвимости и предотвратить развитие атаки.

Углубленное расследование. Хотя информация об эксплуатации уязвимости не подтверждена, нельзя исключить, что она уже происходит. Рекомендовано изучить логи сетевого трафика и облачных сред, при обнаружении подозрительных запросов — проводить полное реагирование, включая ротацию ключей и других секретов, доступных на сервере.  Признаки постэксплуатационной активности, которые стоит искать в первую очередь: разведка серверного окружения, поиск секретов (.env, токенов CI/CD, и т.п.),  установка веб-шеллов.

Советы

Как «подслушать» нейросеть

Атака Whisper Leak позволяет распознать тему вашей беседы с ИИ-ассистентом, не расшифровывая ее трафик. Разбираемся, как это возможно и что сделать для защиты своей переписки.

Уязвимость Pixnapping: неизбежный скриншот на Android-смартфоне

Обнаруженная исследователями уязвимость Android позволяет приложениям воровать с экрана пароли, одноразовые коды и другую секретную информацию, не требуя никаких специальных разрешений операционной системы. Как работает Pixnapping и что делать для защиты?