3 декабря 2025 года, сразу после публичного раскрытия критической уязвимости максимальной степени серьезности React2Shell (CVE-2025-55182), команда Cloudforce One по разведке угроз начала отслеживать первые признаки эксплуатации. В течение нескольких часов мы зафиксировали попытки сканирования и активной эксплуатации, включая трафик, исходящий от инфраструктуры, связанной с угрозовыми группами азиатской направленности.
Ранняя активность указывает на то, что злоумышленники быстро интегрировали эту уязвимость в свои процедуры сканирования и разведки. Мы наблюдали систематический зондаж экспонированных систем, массовую проверку на наличие данной уязвимости и ее включение в более широкие сканирования интернет-активов. Выявленное поведение показывает, что акторы полагались на комбинацию инструментов, таких как стандартные сканеры уязвимостей и общедоступные платформы для обнаружения интернет-активов, чтобы находить потенциально уязвимые развертывания React Server Components (RSC), доступные из Интернета.
Характер наблюдаемой угрозовой активности также позволяет предположить, что злоумышленники фокусировались на идентификации специфических метаданных приложений — таких как хэши иконок, данные SSL-сертификатов или идентификаторы географических регионов — чтобы уточнять списки потенциальных целей перед попыткой эксплуатации.
Помимо React2Shell, были раскрыты две дополнительные уязвимости, затрагивающие определенные реализации RSC: CVE-2025-55183 и CVE-2025-55184. Обе уязвимости, хотя и отличаются от React2Shell, также связаны с обработкой полезных нагрузок RSC и семантикой Server Function, и более подробно описаны ниже.
Предпосылки: уязвимость React2Shell (CVE-2025-55182)
3 декабря 2025 года команда React раскрыла уязвимость удаленного выполнения кода (RCE), затрагивающую серверы, использующие протокол React Server Components (RSC) Flight. Уязвимости CVE-2025-55182 был присвоен балл CVSS 10.0, а неофициально ее называют React2Shell.
Коренной причиной уязвимости является недостаток небезопасной десериализации в логике обработки данных RSC Flight. Когда сервер обрабатывает контролируемые злоумышленником полезные нагрузки без должной проверки, появляется возможность влиять на поток выполнения на стороне сервера. В данном случае специально сформированный ввод позволяет злоумышленнику внедрить логику, которую сервер интерпретирует в привилегированном контексте.
Эксплуатация проста. Достаточно одного специально сформированного HTTP-запроса; не требуется аутентификация, взаимодействие с пользователем или повышенные разрешения. В случае успеха злоумышленник может выполнить произвольный привилегированный JavaScript на затронутом сервере.
Именно это сочетание аутентифицированного доступа, тривиальной эксплуатации и полного выполнения кода помещает CVE-2025-55182 на высший уровень серьезности и делает ее значимой для организаций, полагающихся на уязвимые версии React Server Components.
В ответ Cloudflare развернула новые правила по всей своей сети, установив действие по умолчанию «Блокировать». Эти новые средства защиты включены как в бесплатный управляемый набор правил Cloudflare (доступен всем бесплатным клиентам), так и в стандартный управляемый набор правил Cloudflare (доступен всем платным клиентам), как подробно описано ниже. Дополнительную информацию о различных наборах правил можно найти в нашей документации.
|
CVE |
Описание |
ID правила WAF Cloudflare |
|---|---|---|
|
CVE-2025-55182 React — RCE |
Правила для предотвращения эксплуатации React2Shell |
Платные: 33aa8a8a948b48b28d40450c5fb92fba Бесплатные: 2b5d06e34a814a889bee9a0699702280 |
|
CVE-2025-55182 — 2 React — Обход RCE |
Дополнительные правила для предотвращения обхода эксплуатации |
Платные: bc1aee59731c488ca8b5314615fce168 Бесплатные: cbdd3f48396e4b7389d6efd174746aff |
|
CVE-2025-55182 Обнаружение сканирования |
Дополнительное платное правило WAF для обнаружения попыток сканирования React2Shell |
Платные: 1d54691cb822465183cb49e2f562cf5c |
Недавно раскрытые уязвимости RSC
Помимо React2Shell, были раскрыты две дополнительные уязвимости, затрагивающие определенные реализации RSC. Эти две уязвимости, хотя и отличаются от React2Shell, также связаны с обработкой полезных нагрузок RSC и семантикой Server Function, а соответствующие средства защиты Cloudflare указаны ниже:
|
CVE |
Описание |
ID правила WAF Cloudflare |
|---|---|---|
|
CVE-2025-55183 Утечка Server Functions |
В развертываниях, где идентификаторы Server Function недостаточно проверены, злоумышленник может заставить сервер вернуть исходное тело ссылаемой функции |
Платные: 17c5123f1ac049818765ebf2fefb4e9b Бесплатные: 3114709a3c3b4e3685052c7b251e86aa |
|
CVE-2025-55184 DoS React Function |
Специально сформированная полезная нагрузка RSC Flight, содержащая циклические ссылки на Promise, может вызвать неограниченную рекурсию или блокировку цикла событий при определенных конфигурациях сервера, что приведет к условиям отказа в обслуживании |
Платные: 2694f1610c0b471393b21aef102ec699 |
Исследование раннего сканирования и эксплуатации
Следующий анализ детализирует первоначальную волну активности, наблюдавшуюся Cloudforce One, с фокусом на попытки злоумышленников сканировать и эксплуатировать уязвимость React2Shell. Хотя эти данные отражают активность непосредственно после раскрытия уязвимости и были сфокусированы на известных угрозовых акторах, критически важно отметить, что объем и масштаб связанной угрозовой активности с тех первых наблюдений резко расширились.
Тактики
Неудивительно, что злоумышленники в значительной степени полагались на общедоступные, коммерческие и другие разнообразные инструменты для идентификации уязвимых серверов:
-
Разведка уязвимостей: Акторы использовали базы данных разведки уязвимостей, которые агрегировали CVE, рекомендации и эксплойты для отслеживания и определения приоритетов.
-
Разведка уязвимостей: Акторы проводили поиски с использованием услуг масштабной разведки, что указывает на их зависимость от общеинтернетного сканирования и платформ обнаружения активов для поиска экспонированных систем, работающих на React App или компонентах RSC. Они также использовали инструменты, идентифицирующие программный стек и технологии, используемые веб-сайтами.
-
Сканирование уязвимостей: Активность включала использование Nuclei (User-Agent: Nuclei - CVE-2025-55182) — популярного инструмента быстрого сканирования, используемого для развертывания шаблонов на основе YAML для проверки на уязвимости. Также было зафиксировано использование злоумышленниками сканера React2Shell с высокой степенью вероятности, ассоциированного с User-Agent «Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 React2ShellScanner/1.0.0».
-
Эксплуатация уязвимостей: Акторы использовали Burp Suite — платформу для тестирования безопасности веб-приложений, предназначенную для выявления и эксплуатации уязвимостей в трафике HTTP/S.
Техники
Разведка через общеинтернетное сканирование и платформу обнаружения активов
Для перечисления потенциальных целей React2Shell акторы использовали общеинтернетную платформу сканирования и обнаружения активов, обычно применяемую для массового снятия отпечатков веб-технологий. Их запросы демонстрировали целенаправленные усилия по выделению приложений React и Next.js — двух фреймворков, непосредственно относящихся к уязвимости — путем поиска специфичных для React хэшей иконок, связанных с фреймворком метаданных и заголовков страниц, содержащих React-связанные ключевые слова. Такой подход, вероятно, позволил им быстро составить инвентарь эксплуатируемых хостов до начала более прямого зондирования.
Перечисление и фильтрация целей
Во время фазы разведки операторы применяли дополнительную логику фильтрации для уточнения набора целей и минимизации шума. Примечательно, что они исключали китайское IP-пространство из своих поисков, что указывает на то, что их рабочий процесс перечисления намеренно избегал сбора данных о возможно отечественной инфраструктуре. Они также ограничивали сканирование конкретными географическими регионами и национальными сетями для идентификации вероятных высокоценных хостов. Помимо базового снятия отпечатков, акторы использовали атрибуты SSL-сертификатов — включая данные издателя, поля субъекта и домены верхнего уровня — для выявления интересующих субъектов, таких как государственные или критически важные инфраструктурные системы, использующие .gov или другие ограниченные TLD. Это сочетание географической фильтрации и pivoting на основе сертификатов позволило осуществить более точный процесс перечисления, который отдавал приоритет стратегически значимым и потенциально уязвимым высокоценным целям.
Предварительный анализ целей
Наблюдаемая активность отражала чёткую направленность на стратегически значимые организации в нескольких регионах. Наиболее интенсивное зондирование происходило в сетях на Тайване, в Синьцзян-Уйгурском автономном районе, Вьетнаме, Японии и Новой Зеландии — регионах, часто связанных с приоритетами сбора геополитической разведки. Также наблюдалась выборочная атака на объекты по всему миру, включая правительственные сайты (.gov), академические исследовательские учреждения и операторов критической инфраструктуры. Эти операторы инфраструктуры, в частности, включали национальный орган, ответственный за импорт и экспорт урана, редких металлов и ядерного топлива.
Злоумышленники также уделяли приоритетное внимание высокочувствительным технологическим целям, таким как корпоративные менеджеры паролей и сервисы защищённых хранилищ, вероятно, из-за их потенциала для получения последующего доступа к более широкому набору учётных данных и секретов организаций.
Кроме того, кампания была нацелена на периферийные SSL VPN-устройства, административные интерфейсы которых могут включать компоненты на основе React, что говорит о том, что злоумышленник стремился использовать уязвимость React2Shell как против традиционных веб-приложений, так и против встроенных фреймворков веб-управления, чтобы максимизировать возможности доступа.
Ранние наблюдения за угрозой
Анализ Cloudforce One подтверждает, что ранние попытки сканирования и эксплуатации исходили с IP-адресов, ранее связанных с несколькими кластерами злоумышленников, аффилированных с Азией. Хотя не все наблюдаемые IP-адреса принадлежат одному оператору, одновременная активность предполагает общие инструменты, инфраструктуру или параллельные эксперименты среди групп с общей целью и схожими задачами по выбору целей. Наблюдаемые перечисление и фильтрация целей (например, фокус на Тайвань и Синьцзян-Уйгур, но исключение Китая), а также активное использование определённых платформ сканирования и обнаружения активов позволяют в целом отнести эту активность к угрозам, связанным с Азией.
Общие тенденции
Управляемые наборы правил Cloudflare для React2Shell начали обнаруживать значительную активность в течение нескольких часов после раскрытия уязвимости. На графике ниже показано ежедневное количество срабатываний для двух правил WAF, связанных с эксплуатацией React2Shell.
Совокупный объём срабатываний правил с течением времени
Раскрытие информации об уязвимости React2Shell вызвало всплеск оппортунистического сканирования и эксплуатационного поведения. Всего, с 2025-12-03 00:00 UTC по 2025-12-11 17:00 UTC, мы зафиксировали 582.10 млн срабатываний. Это эквивалентно в среднем 3.49 млн срабатываний в час, а максимальное количество срабатываний за один час достигло 12.72 млн. Среднее количество уникальных IP-адресов в час составило 3 598, а максимальное количество IP-адресов в час — 16 585.
Почасовой подсчёт уникальных IP-адресов, отправляющих зондирующие запросы, связанные с React2Shell
Наши данные также показывают явные пики выше 6 387 User-Agent в час, что указывает на неоднородный набор используемых инструментов и фреймворков, при этом среднее количество уникальных User-Agent в час составляет 2 255. На графике ниже показаны попытки эксплуатации на основе срабатывания правил WAF (Free и Managed) при совпадении с полезными нагрузками:
Уникальные строки User-Agent, используемые в запросах, связанных с React2Shell
Чтобы лучше понять типы автоматизированных инструментов, исследующих наличие уязвимости React2Shell, Cloudflare проанализировал строки User-Agent, связанные с запросами на React2Shell, начиная с 3 декабря 2025 года. Данные показывают широкий спектр инструментов сканирования, что свидетельствует о масштабной разведке по всей сети Интернет:
|
Топ-10 строк User Agent по попыткам эксплуатации |
|---|
|
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0 |
|
Block Security Team/Assetnote-HjJacErLyq2xFe01qaCM1yyzs |
|
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 (GIS - AppSec Team - Project Vision) |
|
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 |
|
python-requests/2.32.5 |
|
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0 (ExposureScan) |
|
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 |
|
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 |
|
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 |
|
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.1 |
Вариации полезной нагрузки и эксперименты
Cloudflare проанализировал размеры полезной нагрузки, связанные с запросами, вызывающими срабатывание правил обнаружения React2Shell. Распределение с длинным хвостом — где преобладают зонды размером менее килобайта, но присутствуют экстремально крупные выбросы — позволяет предположить, что злоумышленники тестируют широкий диапазон размеров полезной нагрузки:
|
Метрика |
Значение |
|---|---|
|
Максимальный размер полезной нагрузки |
375 МБ |
|
Средний размер полезной нагрузки |
3.2 КБ |
|
p25 (25-й процентиль) |
703 Б |
|
p75 (75-й процентиль) |
818 Б |
|
p90 (90-й процентиль) |
2.7 КБ |
|
p99 (99-й процентиль) |
66.5 КБ |
|
Стандартное отклонение |
330 КБ |
Выявлены дополнительные уязвимости React
Параллельно с нашим текущим анализом уязвимости React2Shell были выявлены две дополнительные уязвимости, затрагивающие реализации React Server Components (RSC):
1. DoS-атака на функцию React
Недавно была раскрыта уязвимость CVE-2025-55184, которая показывает, что фреймворки React Server Component могут быть переведены в состояние Node.js, где среда выполнения разворачивает бесконечную рекурсию вложенных Promise.
Это поведение:
-
Бесконечно блокирует сервер
-
Не позволяет вернуть управление циклу событий
-
Фактически выводит сервер из строя
-
Не требует какого-либо конкретного использования Server Action — достаточно наличия сервера, способного обработать полезную нагрузку RSC Server Action
Условием срабатывания является циклическая ссылка на promise внутри полезной нагрузки RSC.
2. Утечка серверных функций
Ещё одна уязвимость, CVE-2025-55183, также была недавно раскрыта. Она показывает, что определённые фреймворки React Server Component могут раскрывать исходный код, предназначенный только для сервера, при определённых условиях.
Если злоумышленник получает доступ к Server Function, которая:
-
Принимает аргумент, который подвергается приведению к строке, и
-
Не проверяет, что аргумент является ожидаемым примитивным типом
то злоумышленник может преобразовать этот аргумент в ссылку на другую Server Function. Результат вызова toString() для приведённого значения заставляет сервер вернуть исходный код указанной Server Function.
Как Cloudflare защищает клиентов
Стратегия защиты Cloudflare многослойна и опирается как на присущую её платформе модель безопасности, так и на немедленные, упреждающие обновления своего Межсетевого экрана веб-приложений (WAF).
-
Cloudflare Workers: Приложения и фреймворки на основе React, развёрнутые на Cloudflare Workers, изначально защищены. Модель безопасности Workers предотвращает успешную эксплуатацию на уровне среды выполнения, независимо от вредоносной полезной нагрузки.
-
Упреждающее развёртывание WAF: Cloudflare срочно развернула правила WAF для обнаружения и блокировки трафика, проксируемого через её сеть и связанного с React2Shell и недавно раскрытыми уязвимостями RSC.
Команда безопасности Cloudflare продолжает отслеживать дополнительные варианты атак и будет обновлять средства защиты по мере необходимости для обеспечения непрерывной безопасности всего проксируемого трафика.
Непрерывный мониторинг
Хотя экстренные меры Cloudflare — увеличение лимита WAF и немедленное развёртывание правил — успешно смягчили текущую волну попыток эксплуатации, эта уязвимость представляет собой постоянную и развивающуюся угрозу. Немедленная эксплуатация CVE-2025-55182 опытными злоумышленниками подчёркивает необходимость постоянной защиты.
Cloudflare сохраняет приверженность постоянному мониторингу появляющихся вариантов эксплуатации и доработке правил WAF для обнаружения методов обхода. Однако защита на сетевом уровне не является заменой устранения уязвимости в источнике. Организации должны в приоритетном порядке немедленно устанавливать патчи для всех затронутых компонентов React и Next.js. Сочетание защиты WAF на уровне платформы и немедленного исправления приложений остается единственной надежной стратегией против этой критической угрозы.
Индикаторы компрометации (IoC)
|
Инструмент/Сканер |
Строка пользовательского агента (User Agent) |
Наблюдение/Цель |
|---|---|---|
|
Nuclei |
Nuclei - CVE-2025-55182 |
User-Agent для быстрого сканирования на основе шаблонов для уязвимости React2Shell |
|
React2ShellScanner |
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 React2ShellScanner/1.0.0 |
User-Agent для, вероятно, пользовательского сканера уязвимости React2Shell |