React2Shell: RCE в react-server-dom-webpack и Next.js
React2Shell выявила критическую проблему с удалённым выполнением кода (RCE) в серверных компонентах React — в первую очередь в пакетах типа react-server-dom-webpack. Уязвимость эксплуатирует небезопасную десериализацию данных протокола Flight, используемого Next.js, и позволяет злоумышленникам запускать произвольный код без аутентификации, отправляя специально сформированные запросы.
Краткая сводка инцидента
С 4 по 17 декабря 2025 года компания Genuine Security отслеживала примерно 760 386 попыток использования уязвимости. Наблюдался резкий рост активности: 11 декабря число попыток заметно увеличилось и достигло пика на следующий день — 12 декабря.
Как работает эксплойт
Проблема связана с тем, что серверные компоненты React, обрабатывающие данные протокола Flight, выполняют десериализацию входящих данных без достаточной валидации. В уязвимых версиях пакетов, например react-server-dom-webpack, это позволяет прицелиться в сервер и выполнить произвольные команды при получении специально сформированных payload’ов. Атака не требует аутентификации — достаточно отправить корректно оформленный HTTP-запрос.
Хронология и масштаб атак
- 4 декабря 2025 — зафиксировано первое появление зонда с особой строкой User-Agent; ранние запросы содержали пустую полезную нагрузку.
- После публичного раскрытия proof-of-concept полезная нагрузка стала действительной, и количество попыток резко возросло.
- 4–17 декабря 2025 — в сумме ~760 386 попыток эксплуатации.
- 11–12 декабря — пик активности.
- География: большинство атак исходило из Германии — на неё приходится 86,5% от общего числа инцидентов; далее следуют Китай и США.
Признаки атаки и используемые инструменты
Первичные попытки эксплойта были отслежены по характерному User-Agent. Среди зафиксированных строк присутствовала следующая запись:
Mozilla/5.0 (аудит безопасности; CVE-2025-55182- Сканер)
Анализ показал, что инструмент, использовавшийся для сканирования, был взят из репозитория на GitHub, предназначенного для поиска данной уязвимости. Для доставки и запуска вредоносных полезных файлов злоумышленники применяли стандартные командные утилиты — curl и wget, что упрощает процесс и уменьшает требования к сложной настройке атакующего окружения.
Рекомендации по защите
- Немедленно обновите все уязвимые зависимости: проверьте и патчьте пакеты типа react-server-dom-webpack и сопутствующие модули.
- Ограничьте доступ к серверным компонентам React из публичного интернета, если они не требуются для продакшена.
- Настройте WAF/IDS-правила для блокировки типичных запросов и отклоняйте подозрительные payload’ы Flight-протокола.
- Мониторьте логи на наличие характерного User-Agent и аномалий в использовании Flight-запросов; реагируйте на резкие всплески трафика.
- Проведите аудит и защитите окружения, где возможна небезопасная десериализация; используйте привязку типов и строгую валидацию входных данных.
- Блокируйте загрузки исполняемых файлов с удалённых хостов, если это возможно, и контролируйте использование curl/wget в средах с повышенным риском.
Вывод
React2Shell — это пример того, как уязвимости в механизмах сериализации/десериализации могут привести к масштабным RCE-инцидентам. В условиях активного сканирования и массовых попыток эксплуатации организациям необходимо срочно оценить свои риски, закрыть уязвимые точки и внедрить мониторинг, чтобы минимизировать потенциальный ущерб.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



