Исследователи раскрыли «идеальную десятку» — уязвимость CVE-2025-55182 в React Server, которая превращает любой уязвимый сервер в открытую дверь для хакеров.

Разработчики и админы по всему миру в срочном порядке обновляют свои серверы после раскрытия критической уязвимости в React Server, открывающем злоумышленникам удалённый запуск кода без аутентификации с помощью всего одного HTTP-запроса. Эксплойт уже доступен публично, а сама проблема получила максимальную оценку опасности — 10 из 10 по CVSS.
React активно используется на серверах, чтобы ускорять отдачу JavaScript и контента: вместо полной перезагрузки страницы при каждом запросе он перерисовывает только изменившиеся части интерфейса. Это серьёзно экономит ресурсы и повышает скорость работы приложений. По оценкам, React применяют порядка 6% всех сайтов и около 39% облачных окружений, поэтому уязвимость затрагивает огромный пласт инфраструктуры.
Специалисты Wiz сообщают, что для эксплуатации требуется всего один специально сформированный HTTP-запрос, а в их тестах успешность атаки была «почти 100%». Дополнительную опасность создаёт то, что многие популярные фреймворки и библиотеки встраивают React Server по умолчанию. В результате уязвимыми могут оказаться даже те приложения, которые напрямую не используют функциональность React, но где интеграционный слой всё равно вызывает уязвимый код.
Именно сочетание широчайшего распространения React, простоты эксплуатации и возможности полного захвата сервера и привело к максимальной оценке критичности. В соцсетях специалисты по безопасности и разработчики призывают не откладывать обновление ни на минуту. «Я обычно так не говорю, но исправляйте прямо сейчас, чёрт побери», — пишет один из специалистов, подчёркивая, что уязвимость React с идентификатором CVE-2025-55182 — это «идеальная десятка».
Под удар попали React версий 19.0.1, 19.1.2 и 19.2.1. Уязвимыми считаются и сторонние компоненты, использующие React Server Components: плагины Vite RSC и Parcel RSC, предварительная версия React Router RSC, RedwoodSDK, Waku, а также Next.js. Для Next.js уязвимость отслеживается отдельно под идентификатором CVE-2025-66478.
По данным Wiz и Aikido, проблема связана с небезопасной десериализацией в Flight — протоколе, который используется в React Server Components. Десериализация — это процесс, когда строки, байтовые потоки и другие «сериализованные» данные преобразуются обратно в объекты и структуры в памяти. Если этот процесс реализован неправильно, злоумышленник может подсунуть специально сформированные данные, которые изменят логику выполнения кода на сервере.
«Когда сервер получает специально сформированный, некорректный payload, он неправильно проверяет его структуру», — объясняют в Wiz. «Это позволяет данным, контролируемым атакующим, повлиять на выполнение логики на стороне сервера и в итоге приводит к выполнению привилегированного JavaScript-кода». В своих экспериментах компания добивалась устойчивой эксплуатации с почти стопроцентной результативностью и возможностью полного удалённого выполнения кода. Атака не требует аутентификации, проводится удалённо и срабатывает против конфигураций «по умолчанию» во многих популярных фреймворках.
Разработчики React уже выпустили обновления, в которых усилена проверка входящих данных и ужесточено поведение десериализации, чтобы закрыть возможность для подобных атак.
Wiz и Aikido настоятельно рекомендуют администраторам и разработчикам как можно скорее обновить React и все зависимости, которые его используют, а также внимательно следить за рекомендациями мейнтейнеров перечисленных фреймворков и плагинов. Дополнительно Aikido советует провести поиск использования React в кодовой базе и репозиториях своих проектов, и убедиться, что все потенциально уязвимые компоненты получили исправления.