Уязвимости React2Shell и RSC: как хакеры атакуют критическую инфраструктуру прямо сейчас

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 and related RSC vulnerabilities threat brief: early exploitation activity and threat actor techniques

Совокупный объём срабатываний правил с течением времени

Раскрытие информации об уязвимости 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.

React2Shell and related RSC vulnerabilities threat brief: early exploitation activity and threat actor techniques

Почасовой подсчёт уникальных IP-адресов, отправляющих зондирующие запросы, связанные с React2Shell 

Наши данные также показывают явные пики выше 6 387 User-Agent в час, что указывает на неоднородный набор используемых инструментов и фреймворков, при этом среднее количество уникальных User-Agent в час составляет 2 255. На графике ниже показаны попытки эксплуатации на основе срабатывания правил WAF (Free и Managed) при совпадении с полезными нагрузками:

React2Shell and related RSC vulnerabilities threat brief: early exploitation activity and threat actor techniques

Уникальные строки 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