// Безопасность / Веб

Критическая уязвимость React Server Components ставит под угрозу более 644 000 доменов

React уязвимость

Критическая уязвимость React Server Components ставит под угрозу более 644 000 доменов

КРИТИЧЕСКОЕ ПРЕДУПРЕЖДЕНИЕ ПО БЕЗОПАСНОСТИ: обнаружена масштабная уязвимость в React Server Components (CVE-2025-55182), которая открывает путь к удалённому выполнению кода и обходу механизмов безопасности. Под угрозой находятся более 644 000 доменов и 165 000 уникальных IP-адресов. Это одна из самых масштабных уязвимостей веб-приложений, выявленных в 2025 году, и все компании, использующие React, обязаны принять меры немедленно.

8 декабря 2025 года Shadowserver Foundation опубликовала тревожный отчёт: их обновлённая методология сканирования выявила более 644 тысяч доменов, на которых используются уязвимые реализации React Server Components. Это в разы больше прежних оценок и ярко демонстрирует масштабы угрозы.

Уязвимость CVE-2025-55182 затрагивает фундаментальную архитектуру React Server Components — технологии, активно применяемой при разработке высоконагруженных и современных веб-приложений. Уязвимость позволяет злоумышленникам обходить серверные механизмы защиты и потенциально исполнять произвольный код на серверной инфраструктуре. Это делает её идеальной мишенью для атакующих по всему миру.

С учётом CVSS 9.8 (Critical) CVE-2025-55182 представляет немедленную и крайне серьёзную угрозу для всех организаций, использующих React. Более полумиллиона уязвимых доменов создают огромную площадь атаки и открывают злоумышленникам возможности для массовых атак.


Технический разбор уязвимости CVE-2025-55182

Что такое React Server Components?

React Server Components — это часть новой архитектуры React, при которой компоненты могут выполняться не в браузере, а на сервере. Это снижает нагрузку на клиент, уменьшает размер бандла и ускоряет получение данных. Массовое внедрение RSC сильно усилило влияние найденной уязвимости.

Технические параметры CVE-2025-55182

АтрибутЗначение
CVE IdentifierCVE-2025-55182
CVSS v3.19.8 (Critical)
Attack VectorNetwork (remote)
Attack ComplexityLow
Privileges RequiredNone
User InteractionNot required
ScopeChanged
ConfidentialityHigh
IntegrityHigh
AvailabilityHigh

Как работает уязвимость

Проблема возникает в механизмах сериализации и десериализации данных между клиентом и сервером. Уязвимость позволяет атакующему внедрять вредоносные полезные нагрузки, которые сервер обрабатывает без должной валидации.

Упрощённый пример уязвимого кода

// УПРОЩЁННЫЙ пример — НЕ использовать в продакшене
export async function VulnerableComponent({ userInput }) {
    // Недостаточная валидация пользовательских данных
    const data = await processUserData(userInput);

    // Опасная десериализация
    return deserialize(data);
}

// Что может сделать атакующий:
// 1. Обойти авторизацию
// 2. Выполнить произвольный код на сервере
// 3. Получить доступ к ресурсам сервера
// 4. Манипулировать логикой приложения

Почему уязвимость настолько опасна?

Фактор рискаОписаниеУровень
Нет аутентификацииЭксплуатация возможна без учётных данныхКритический
Remote exploitЭксплуатируется удалённо через интернетКритический
Простота эксплуатацииПосле появления PoC воспользоваться сможет любойВысокий
Массовое распространение RSCСотни тысяч сайтовКритический
Серверный контекстКомпрометация backend и БДКритический
Возможность автоматизацииЛегко сканируется и эксплуатируется ботнетамиВысокий

Масштаб проблемы: данные Shadowserver Foundation

Shadowserver опубликовала обновлённый отчёт, который стал переломным моментом в анализе CVE-2025-55182.

Улучшенная методология выявления уязвимых сайтов

МетрикаПредыдущая оценкаТекущее значениеРост
Уязвимые домены~100 000644 000++544%
Уникальные IP~30 000165 000++450%
Точность65–70%90%++30%
Ошибки false positive15–20%5%−75%

Примерное распределение по индустриям

СекторПримерное число сайтовРискОсновные угрозы
E-commerce150 000+КритическийКарты, платежи
Финансы45 000+КритическийСчета, регуляция
Здравоохранение35 000+КритическийПациенты, HIPAA
Образование80 000+ВысокийУчётные данные
Государ sector25 000+КритическийГосуслуги
SaaS/Tech120 000+ВысокийКлиентские данные
Медиа90 000+Средне-высокийCMS, доступы

Сценарии атаки и способы эксплуатации

АтакаМеханизмПоследствияОбнаружение
RCEВредоносная десериализацияПолный захват сервераСреднее
Bypass AuthМанипуляция серверной логикойАдмин-доступ без логинаВысокое
Data TheftДоступ к БД/секретамУтечки, шпионажВысокое
SSRFСервер делает внутренние запросыЛатеральное движениеВысокое
DoSПерегрузка компонентОтключение сервисаНизкое
Supply Chain AttackВставка вредоносного кода в UIМассовое заражение пользователейОчень высокое

Текущая активность угроз

  • Публичный PoC уже существует
  • Замечено массовое сканирование
  • Есть подтверждённые попытки эксплуатации
  • Интерес проявляют и обычные хакеры, и APT
  • Уязвимость имеет потенциал червя

Как проверить свои системы

Чек-лист для оценки уязвимости

ШагДействиеИнструментыПриоритет
InventoryНайти все React-проектыRepo searchНемедленно
Проверить версииReact/Next.jspackage.json, npm listНемедленно
СканированиеАвтоматическоеShadowserver, коммерческие сканерыНемедленно
Code ReviewАнализ RSCSASTВысокий
ЛогиПоиск следов атакSIEMВысокий
ТрафикNetwork anomaliesIDS/IPSСредний

Уязвимые версии

FrameworkУязвимые версииИсправленныеПриоритет
React18.0.0 – 18.2.x18.3.0+Критический
Next.js13.0.0–13.4.x / 14.0.0–14.1.x13.5+/14.2+/15+Критический
Standalone RSCВсе до дек. 2025Последние патчиКритический

Полный набор команд для детекта

# Поиск подозрительных запросов
grep "/_next/data|/api/|/__rsc" access.log | grep -E "POST|PUT|DELETE" | awk '{print $1, $7, $9}' | sort | uniq -c | sort -rn

# Десериализация
grep -E "eval(|Function(|__proto__|constructor[" application.log

# Ошибки 500 — признак эксплуатации
grep "500" error.log | grep -E "rsc|server.*component"

# Сеть
tcpdump -i any -s 0 -A 'port 80 or port 443' | grep -E "__rsc|server.*component|serialize"

# Node.js запускает shell — критично
ps aux | grep node | grep -E "sh|bash|cmd|powershell"

# Неожиданные изменения файлов
find /var/www -type f -mtime -1 -ls | grep -E ".js$|.jsx$|.ts$|.tsx$"

Полная стратегия устранения уязвимости

Инструкции по патчингу

Оригинальные команды полностью сохранены:

tar -czf app-backup-$(date +%Y%m%d).tar.gz /path/to/application

npm install react@18.3.0 react-dom@18.3.0 --save
npm install next@14.2.0 --save
npm update

rm -rf .next node_modules/.cache
npm run build
npm audit fix
npm run test
npm run e2e-test

npm run deploy:production

curl -I https://your-domain.com | grep -i server
npm list react react-dom next

tail -f /var/log/application.log | grep -E "error|exception|rsc"

WAF-правила

SecRule REQUEST_URI "@rx /__rsc|/_next/data" 
 "chain,id:1000,phase:2,block,msg:'Potential CVE-2025-55182 exploitation attempt'"
SecRule REQUEST_BODY "@rx eval(|Function(|__proto__|constructor["

SecAction "id:1001,phase:1,pass,initcol:ip=%{REMOTE_ADDR}"
SecRule REQUEST_URI "@rx /__rsc" 
 "id:1002,phase:2,pass,setvar:ip.rsc_counter=+1,expirevar:ip.rsc_counter=60"
SecRule IP:RSC_COUNTER "@gt 10" 
 "id:1003,phase:2,deny,status:429,msg:'RSC endpoint rate limit exceeded'"

SecRule REQUEST_BODY "@rx x00|%00" 
 "id:1004,phase:2,deny,msg:'Null byte in request body'"

Пост-эксплуатация: расследование и восстановление


Долгосрочные меры защиты


Реакция индустрии

ОрганизацияДействия
React TeamПатчи, советы, документация
Next.js/VercelСрочные обновления, уведомления
ShadowserverПубличный дашборд
CISAВключено в KEV-каталог
ВендорыОбновления сканеров и сигнатур

Вывод: действовать нужно немедленно

CVE-2025-55182 — одна из самых масштабных и опасных уязвимостей 2025 года. Огромная площадь атаки, критичность, активная эксплуатация и наличие PoC делают её приоритетом №1 для всех компаний.

Немедленное обновление, постоянный мониторинг и долгосрочное укрепление безопасности — единственный путь минимизировать риски.

Профильные услуги SecurityLab: тестирование на проникновение · пентест веб-приложений · Анализ вредоносного ПО.

← назад в блог