“Хакеры не виноваты”. Cloudflare официально признала, что четверть интернета обрушил их собственный патч против React2Shell

“Хакеры не виноваты”. Cloudflare официально признала, что четверть интернета обрушил их собственный патч против React2Shell

Как гонка вооружений со злоумышленниками привела к самому нелепому сбою года в пятницу.

image

Глобальная инфраструктура Cloudflare во второй раз за месяц дала серьёзный сбой - и теперь становится ясно, что причина кроется не в атаке, а в спешке закрыть критическую дыру в популярной JavaScript-библиотеке React, получившую имя React2Shell (CVE-2025-55182).

Ранним утром 5 декабря по восточноамериканскому времени часть сети провайдера буквально потухла: около четверти всего HTTP-трафика, проходившего через узлы Cloudflare, начали возвращать ошибки. По оценке компании, на пике инцидента недоступной оказалась примерно 28% обработанных запросов - это миллионы пользователей и онлайн-сервисов, завязанных на CDN, веб-экран и защитные сервисы платформы. Перебой длился чуть менее получаса, но для сайтов, которые полностью полагаются на Cloudflare, он обернулся полной изоляцией от аудитории.

Позже технический директор Cloudflare Дэйн Кнект в разборе происшествия отдельно подчеркнул, что речь не шла о взломе или внешнем вмешательстве. Отказ, по его словам, спровоцировали изменения в логике обработки HTTP вплоть до байта, которые внедрялись для обнаружения и блокировки новой критической уязвимости в React Server Components. Попытка оперативно встроить фильтры под React2Shell привела к тому, что часть прокси-узлов с устаревшим программным стеком начала падать с ошибками и отвечать клиентам кодом 500.

Риск, из-за которого команда пошла на столь нервную доработку, уже несколько дней остаётся в центре внимания индустрии. React2Shell - это ошибка десериализации, оценённая максимально возможным баллом по шкале CVSS: 10 из 10. Для злоумышленника она особенно привлекательна тем, что не требует ни аутентификации, ни сложной подготовки: достаточно отправить специально сформированный запрос на уязвимый сервис, чтобы удалённо исполнить произвольный код. Под удар попадают не только проекты, использующие сам React, но и целый пласт инфраструктуры вокруг него, включая фреймворк Next.js и популярные сборщики.

Об усилении давления со стороны злоумышленников практически сразу после раскрытия детали начали отчитываться регуляторы и крупные поставщики облачных услуг. Британские власти официально предупредили, что брешь уже активно эксплуатируется, а американское агентство CISA оперативно добавило CVE-2025-55182 в каталог эксплуатируемых уязвимостей, фактически дав понять администраторам, что затягивать с обновлениями нельзя. Amazon в отдельном уведомлении указал, что группы, связанные с китайскими государственными структурами, приступили к попыткам эксплуатации буквально через несколько часов после публикации информации: среди них упоминаются Earth Lamia и Jackpot Panda, давно фигурирующие в отчётах крупных вендоров.

О масштабах происходящего можно судить по тому, какие действия наблюдают службы охоты за угрозами. В Unit 42, исследовательском подразделении Palo Alto Networks, рассказывают о сканировании интернета на предмет уязвимых инстансов, пробных цепочках удалённого исполнения кода, попытках вытащить из облачных окружений конфигурационные файлы и ключи доступа к AWS, а также об установке загрузчиков, подтягивающих полезную нагрузку с управляющих серверов. Параллельно специалисты Bitdefender прогнозируют, что к гонке очень быстро подключатся операторы вымогательского ПО и первоначальные брокеры доступа, старающиеся занять выгодные позиции в корпоративных сетях, как только в открытом доступе появляются рабочие эксплойты.

Сами программы для атаки распространяются по сети с огромной скоростью. Исследователь Лаклан Дэвидсон, обнаруживший проблему и передавший её разработчикам React, отмечает, что полноценный прототип эксплойта начал циркулировать примерно через 30 часов после раскрытия. Собственные варианты он опубликовал позднее, пообещав в ближайшее время детальный технический разбор механики атаки. Один из рабочих прототипов выложил на GitHub исследователь под ником maple3142, а специалисты Ox Security подтвердили, что код действительно позволяет добиться удалённого исполнения команд на уязвимых конфигурациях и требует немедленного реагирования со стороны тех, чьи сервисы доступны из интернета.

На этом фоне вокруг React2Shell естественным образом сложился шумовой фон из поддельных примеров. В сети множатся проекты, которые выдают себя за эксплойты, но на деле опираются на сценарии, не имеющие отношения к описанному дефекту. Дэвидсон обращает внимание, что многие псевдо-POC используют опасные функции вроде vm.runInThisContext, child_process.exec или fs.writeFile, доступ к которым злоумышленник мог бы получить только в том случае, если разработчик сам сознательно открыл их на сторону клиента, - то есть создал проблему независимо от React2Shell. Подобные проекты вводят защитников в заблуждение и создают ложное ощущение, что проблема уже изучена, хотя на деле организации остаются без корректных способов обнаружения атак.

Возвращаясь к сбою у Cloudflare, становится понятно, насколько болезненно крупнейшие игроки переживают эту гонку вооружений. После прошлой, ноябрьской аварии, которую глава компании назвал худшей с 2019 года и которая тоже была спровоцирована ошибкой в конфигурации, провайдер обещал серьёзно перестроить архитектуру управления настройками. Новый эпизод показывает, что эти обещания пока в процессе реализации. В этот раз команда попыталась расширить размер HTTP-буфера - с 128 килобайт до 1 мегабайта - чтобы перехватывать более громоздкие вредоносные запросы, характерные для атак на React2Shell. Первоначально развёртывание шло штатно, но в тот момент, когда выключили внутренний инструмент тестирования веб-экрана, не рассчитанный на увеличенный буфер, глобальная система распространения конфигураций разослала изменённые параметры по всему периметру буквально за секунды.

Недочёт, спрятавшийся глубоко в логике старых FL1-прокси, мгновенно проявил себя: при обработке запросов начинала срабатывать ошибка Lua-скрипта, и все обращения через затронутые узлы заканчивались кодом 500. Под удар попали клиенты, использовавшие этот тип прокси вместе с управляемым набором правил WAF, и этого оказалось достаточно, чтобы доля неуспешных ответов по сети выросла до заметных величин. Интересная деталь: китайский сегмент инфраструктуры Cloudflare в этот раз остался в строю. Инженерам удалось оперативно вычислить проблемное изменение, откатить его в 4:11 по восточному времени и уже через минуту вернуть трафик к нормальным значениям, но репутационный след от второй подряд крупной аварии останется надолго.

На будущее провайдер обещает ускорить целый ряд изменений: сделать более аккуратным развертывание и версионирование конфигурационных данных, расширить возможности аварийного управления инфраструктурой даже в условиях параллельных сбоев и внедрить подход «fail-open», при котором некорректные файлы настроек не приводят к жёстким отказам, а переводятся в безопасные значения по умолчанию. Пока же компания заморозила все изменения, не относящиеся к критическим мерам защиты, и повторно извинилась перед клиентами и интернет-сообществом за то, что серьёзные сбои повторяются с минимальным интервалом.

Вице-президент по исследованию угроз Radware Паскаль Гененс обращает внимание, что когда речь идёт об открытом программном обеспечении, злоумышленники с достаточными ресурсами могут изучить изменения в коде и восстановить логику атаки даже при скудных официальных комментариях. При этом часть защитников остаётся в информационном вакууме, ориентируется на неполные или неверные данные, и в итоге внедряет меры, которые не работают. По словам Гененса, «это гонка, и у большего числа игроков на стороне защиты было бы больше шансов выиграть, если бы они сразу получали полный и точный объём информации».

Сочетание стремительно распространяющейся критической ошибки в ключевом элементе веб-стека, реальной активности государственных группировок и нервных реакций крупных инфраструктурных провайдеров вроде Cloudflare показывает, насколько хрупким остаётся привычный облик интернета. И чем чаще под давлением обстоятельств защитные компании будут ломать собственные механизмы ради срочного патча, тем внимательнее, похоже, придётся подходить к тому, как именно мир открытого кода рассказывает о новых дырах в своей основе.