В экосистеме React обнаружена критическая уязвимость, позволяющая злоумышленникам выполнять произвольный код на сервере. Уязвимость, получившая идентификаторы CVE-2025-55182 и BDU:2025-15156, затрагивает ключевые пакеты для рендеринга на стороне сервера. Эксперты оценивают её базовый уровень опасности как критический с максимальной оценкой 10.0 по шкалам CVSS 2.0 и 3.1.
Детали уязвимости
Проблема кроется в функции "requireModule()" пакетов "react-server-dom-webpack", "react-server-dom-parcel" и "react-server-dom-turbopack". Она связана с недостатками механизма десериализации при обработке специального параметра "hasOwnProperty". В результате атакующий, действуя удалённо, может отправить специально сформированный HTTP-запрос и добиться выполнения произвольных команд на целевом сервере. Этот тип уязвимости классифицируется как "Десериализация ненадёжных данных" (CWE-502).
Уязвимость подтверждена производителем, Meta Platforms Inc, и затрагивает широкий спектр программного обеспечения. В список уязвимого ПО входят React версий до 19.2.1 в связке с указанными серверными пакетами. Кроме того, под удар попадает популярный фреймворк Next.js от Vercel, включая его канареечные версии. Также потенциально уязвимыми могут быть проекты, использующие React Router, Waku, Expo и Redwood SDK.
Уже существуют публичные эксплойты, подтверждающие возможность эксплуатации. Исследователи безопасности опубликовали доказательства концепции (PoC) и сканеры в открытых репозиториях GitHub. Следовательно, риск массовых атак является высоким. Злоумышленники могут использовать эту уязвимость для полного взятия контроля над сервером, кражи данных или развёртывания вредоносного ПО, такого как программы-вымогатели (ransomware).
Для устранения угрозы необходимо срочно обновить программное обеспечение. Команда React выпустила исправленные версии пакетов. Разработчикам на React следует обновиться до версий 19.2.1, 19.1.2 или 19.0.1 в соответствующих каналах поддержки. Для Next.js необходимо установить актуальные патчи: версии 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 или 16.0.7 и выше. Важно отметить, что канареечная версия 14.3.0-canary.77 также содержит исправление.
Если немедленное обновление невозможно, специалисты рекомендуют применить комплекс компенсирующих мер. Во-первых, стоит рассмотреть изменение стандартного сетевого порта доступа к серверу React с 3002 на нестандартный. Во-вторых, эффективным барьером может стать межсетевой экран уровня приложений (WAF), настроенный на фильтрацию подозрительных запросов к эндпоинтам серверных компонентов.
Кроме того, следует ограничить возможность непривилегированных пользователей загружать файлы на сервер. Также рекомендуется использовать схему доступа по "белому списку" для изоляции уязвимого ПО от публичной сети. Для мониторинга и реагирования стоит задействовать системы класса SIEM (Security Information and Event Management) для отслеживания событий, связанных с вызовом функции "runInThisContext()". Дополнительный контроль обеспечат системы обнаружения и предотвращения вторжений (IDS/IPS), настроенные на известные индикаторы компрометации для этой уязвимости.
Данный инцидент underscores важность безопасной десериализации в JavaScript-окружении. Уязвимости подобного класса позволяют атакующим манипулировать структурами данных и внедрять зловредную нагрузку (malicious payload). Разработчикам, использующим серверные компоненты React, рекомендуется не только установить обновления, но и провести аудит своих приложений на предмет подобных проблем. Ссылки на официальные заявления и рекомендации по исправлению опубликованы в блогах React и Next.js.
Ссылки
- https://bdu.fstec.ru/vul/2025-15156
- https://www.cve.org/CVERecord?id=CVE-2025-55182
- https://react.dev/versions#react-19
- https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
- https://nextjs.org/blog/CVE-2025-66478
- https://github.com/Ashwesker/Blackash-CVE-2025-55182
- https://github.com/fatguru/CVE-2025-55182-scanner
- https://github.com/Spritualkb/CVE-2025-55182-exp