Критическая уязвимость React Server Components ставит

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 Identifier CVE-2025-55182
CVSS v3.1 9.8 (Critical)
Attack Vector Network (remote)
Attack Complexity Low
Privileges Required None
User Interaction Not required
Scope Changed
Confidentiality High
Integrity High
Availability High

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

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

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

// УПРОЩЁННЫЙ пример — НЕ использовать в продакшене
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 000 644 000+ +544%
Уникальные IP ~30 000 165 000+ +450%
Точность 65–70% 90%+ +30%
Ошибки false positive 15–20% 5% −75%

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

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

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

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

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

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

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

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

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

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

Framework Уязвимые версии Исправленные Приоритет
React 18.0.0 – 18.2.x 18.3.0+ Критический
Next.js 13.0.0–13.4.x / 14.0.0–14.1.x 13.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 для всех компаний.

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