CVE-2025-55182 React Server Components RCE — KEV, ransomware Known
Суть
Небезопасный разбор payload React Server Function / RSC: неаутентифицированный сетевой запрос → RCE в процессе приложения (дальше — хост, если права позволяют). CVSS 10.0 (React Team). CVE-2025-66478 — rejected, связан с 55182. Вектор: сеть, без логина и без UI-действия. По React Team: приложение с поддержкой RSC может быть уязвимо даже если своих Server Function endpoints нет.
Затронуто и исправлено
| Компонент | Уязвимо | Минимум с фиксом |
|---|---|---|
| react-server-dom-webpack / parcel / turbopack | 19.0.0; 19.1.0–19.1.1; 19.2.0 | 19.0.1 / 19.1.2 / 19.2.1 |
| Next.js 13.3+ / 14.x | ниже патча линии | 14.2.35 |
| Next.js 15.0 … 15.5 | ниже патча линии | 15.0.8 / 15.1.12 / 15.2.9 / 15.3.9 / 15.4.11 / 15.5.10 |
| Next.js 16.0 / 16.1 | ниже патча линии | 16.0.11 / 16.1.5 |
| Next canary 15.x / 16.x | уязвимый canary | 15.6.0-canary.60 / 16.1.0-canary.19 (или новее) |
Также: React Router (unstable RSC), Waku, @parcel/rsc, @vitejs/plugin-rsc, rwsdk — по блогу React. Клиент-only React без сервера / без RSC-плагина — вне 55182. Pages Router сам по себе не даёт этот RCE; вендор всё равно рекомендует патч-линию.
Смежные (не RCE, те же пакеты/линии; детали в статье): CVE-2025-55184, CVE-2025-67779, CVE-2025-55183, CVE-2026-23864 (26.01.2026). Ориентир версий — актуальная таблица на странице React.
Эксплуатация
- CISA KEV: added 2025-12-05, due 2025-12-12, ransomware Known.
- JPCERT/CC (02.2026): инциденты с компрометацией через 55182 вскоре после disclosure; на одном хосте — несколько независимых пост-эксплуатаций.
- EPSS ≈ 0.997 (лента 06.11.2026).
- Вторично: массовое сканирование в 2025–2026 — без ссылок.
- Публичные PoC/модули атак существуют — не ссылаем, не описываем.
Как проверить
Ориентир — версии в lockfile (и то же на хосте деплоя после выкладки).
# npm — главный ориентир на типичном Next: версия next (RSC часто vendored внутрь next)
npm ls next
npm ls react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack 2>/dev/null
# yarn / pnpm / bun — смотреть lockfile
rg -n 'react-server-dom-(webpack|parcel|turbopack)|"next":|next@|"next@|next:' package-lock.json yarn.lock pnpm-lock.yaml bun.lock 2>/dev/null | headПустой вывод по react-server-dom-* не значит «не затронуто»: на обычном Next App Router RSC часто внутри next — сверяйте next по таблице. Пустой rg ≠ «чисто».
Критерий закрытия: RSC ≥ таблицы (если пакет top-level есть); Next ≥ патча своей minor-линии; running процесс/контейнер — новый билд (не старый PM2/systemd/digest). Сравнение: 19.1.1 < 19.1.2; 15.5.9 < 15.5.10; 16.0.10 < 16.0.11.
Пройти все окружения с App Router / RSC, если торчат в интернет (prod, staging, preview).
Как исправить
- Перед обновлением — бэкап кода/БД или snapshot хоста.
- Обновить зависимости. Примеры:yarn/pnpm — те же версии пакетов. Canary
npm install next@14.2.35 # линия 13.3+/14.x npm install next@15.5.10 # линия 15.5.x npm install next@16.0.11 # линия 16.0.x npm install react@latest react-dom@latest react-server-dom-webpack@latest14.3.0-canary.77+→ стабильный 14.2.35; canary 15/16 → минимумы таблицы или стабильная линия. - Пересобрать образ/артефакт без кэша слоя
node_modules(--no-cache/ эквивалент CI), выкатить, перезапустить сервис (systemctl/pm2 restart/новый ReplicaSet). Снять pin на старый digest. - После ротации секретов — перевыпустить деплой с новыми env в CI/оркестраторе.
- Hosting WAF/mitigations — только временное дополнение; React Team: не полагаться вместо патча. Workaround как замена обновлению — нет.
Если обновить нельзя
Официального workaround нет. До патча: убрать приложение с публичного доступа (закрытый ingress / VPN / снять публичный маршрут PaaS). Одного включения WAF недостаточно. Неофициальные патчи и «однострочники с форумов» — не предлагать. Отключение только Server Function endpoints не считается достаточной мерой (вендор: уязвимость возможна при поддержке RSC без своих endpoints).
Признаки взлома и что делать
Индикаторов от React Team почти нет. При долгой экспозиции после 03.12.2025 считать компрометацию возможной: патча мало.
- Ротация
.env/ secrets manager, ключей CI/CD, токенов хостинга, сессий админов, DB-паролей; затем redeploy с новыми env. - Сверка дерева деплоя с чистым git; поиск неожиданных cron/systemd, исходящих соединений, новых пользователей.
- При подтверждённом взломе — пересборка окружения, восстановление из проверенного бэкапа до инцидента.
Источники
React Team, бюллетень CVE-2025-55182 от 03.12.2025 (апдейты до 26.01.2026): версии RSC 19.0.1 / 19.1.2 / 19.2.1 и таблица Next — фактом без URL (со страницы вендора в один hop — GitHub автора с PoC-репозиторием).
CISA KEV CVE-2025-55182: added 2025-12-05, due 2025-12-12, ransomware Known — фактом без URL. JPCERT/CC (02.2026) — факт атак без URL. Реестры NVD/CVE.org — номерами без ссылок.