<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[React Server Components: CVE-2025-55182 и защита от RCE в production]]></title><description><![CDATA[<p dir="auto"><img src="/assets/uploads/files/e1/50/0f/1774089579764-generated_1774089559194.webp" alt="Обложка: React Server Components: критический патч CVE-2025-55182 и защита от RCE в production окружении" class=" img-fluid img-markdown" /></p>
<p dir="auto">CVE-2025-55182 - это критическая дыра в React Server Components, которая позволяет запустить произвольный код на сервере без авторизации. Уязвимость бьет по react-server-dom пакетам версий 19.0.0-19.2.0 и фреймворкам вроде Next.js 15.x/16.x. Пэтч вышел 3 декабря 2025, но в проде еще полно уязвимых инстансов - до 39% по сканам.</p>
<p dir="auto">Зачем разбирать? Чтобы быстро проверить свой стек, понять механику и защитить API от RCE. Это не просто баг, а логическая проблема десериализации в RSC Flight протоколе, которая превращает обычный POST в shell. Пройдем по патчу, уязвимым версиям и шагам для production hardening.</p>
<h2>Механика уязвимости: RSC Flight и десериализация</h2>
<p dir="auto">RSC Flight - это протокол для передачи компонентов и server actions между сервером и клиентом. Сервер десериализует входящий payload, но в уязвимых версиях нет строгой валидации. Атакующий шлет crafted HTTP POST на endpoint с Server Functions, и бум - prototype pollution через <strong>proto</strong> приводит к RCE. Никаких creds не нужно, один запрос - и сервер твой.</p>
<p dir="auto">Пример: клиент шлет чанк с вредоносным референсом, React его резолвит неправильно, requireModule подхватывает и исполняет код. Это не memory corruption, а логический фейл - сервер трактует данные как инструкции. В Next.js App Router это бьет по всем роутам с server components. Масштаб огромный: React 19, Next.js 15/16, даже Parcel/Vite плагины под ударом.</p>
<ul>
<li><strong>Ключевые шаги атаки</strong>:
<ul>
<li>Крафт payload с манипуляцией chunk references.</li>
<li>POST на /_rsc endpoint (или аналог в твоем фреймворке).</li>
<li>Десериализация вызывает requireModule с attacker-controlled модулем.</li>
</ul>
</li>
<li><strong>Почему критично (CVSS 10.0)</strong>: pre-auth, remote, full code exec.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Свойство</th>
<th>Описание</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Протокол</strong></td>
<td>RSC Flight (chunked serialization)</td>
</tr>
<tr>
<td><strong>Триггер</strong></td>
<td>Deserialization Server Actions</td>
</tr>
<tr>
<td><strong>Вектор</strong></td>
<td>HTTP POST без auth</td>
</tr>
<tr>
<td><strong>Последствия</strong></td>
<td>RCE, data breach, ransomware</td>
</tr>
</tbody>
</table>
<h2>Затронутые пакеты и фреймворки</h2>
<p dir="auto">Уязвимость сидит в react-server-dom-webpack/parcel/turbopack версий 19.0.0, 19.1.0, 19.1.1, 19.2.0. Это базовые либы для SSR в React 19. Next.js 15.x/16.x (App Router) и canary от 14.3.0-canary.77 наследуют баг напрямую. Другие: React Router RSC, Waku, RedwoodSDK, Vite/Parcel RSC plugins - все, что бандлит эти пакеты.</p>
<p dir="auto">Проверь package.json: если react-server-dom-* в 19.0-19.2.0 без патча - срочно апдейт. В cloud (GKE, Cloud Run) уязвимые образы висят в 39% окружений по телеметрии. Expo и мобильные тоже под вопросом, если юзают RSC. Патч - 19.0.1, 19.1.2, 19.2.1 для либ, плюс Next.js обновы.</p>
<ul>
<li><strong>Патченные версии</strong>:
<ol>
<li>react-server-dom-webpack@19.0.1+.</li>
<li>Next.js@15.x/16.x с фиксом (проверь changelog).</li>
<li>npm audit или yarn upgrade-interactive.</li>
</ol>
</li>
<li><strong>Дополнительно</strong>: disable Server Functions временно, если пэтч не сразу.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Пакет</th>
<th>Уязвимые версии</th>
<th>Патч</th>
</tr>
</thead>
<tbody>
<tr>
<td>react-server-dom-webpack</td>
<td>19.0.0-19.2.0</td>
<td>19.0.1+</td>
</tr>
<tr>
<td>Next.js</td>
<td>15.x, 16.x</td>
<td>latest</td>
</tr>
<tr>
<td>Vite RSC plugin</td>
<td>bundling vuln pkgs</td>
<td>update deps</td>
</tr>
</tbody>
</table>
<h2>Патчинг и hardening в production</h2>
<p dir="auto">Первый шаг - inventory: grep docker images, npm ls в CI/CD. Апгрейдь deps: npm update react-server-dom-webpack@latest. В Next.js - npx next@latest. Redeploy приоритетно public-facing сервисы. Если Kubernetes - обнови images в GKE/eks, ротацию pods.</p>
<p dir="auto">Дальше WAF: правила на блок crafted payloads с <strong>proto</strong> или подозрительными chunk refs. Azure WAF, Cloud Armor - кастом рулс на /_rsc пути. Мониторинг: логи на десериализацию errors, alerts от Defender. Временно disable RSC endpoints через env vars. Тестируй в staging: curl с PoC payload из GitHub (dwisiswant0/CVE-2025-55182).</p>
<ul>
<li><strong>Checklist для продa</strong>:
<ul>
<li><strong>Audit deps</strong>: npm audit --production.</li>
<li><em>WAF рулс</em>: block payloads с ‘R:’ prefix или oversized chunks.</li>
<li>Rotate secrets post-patch - на всякий.</li>
<li>MDVM сканы для coverage.</li>
</ul>
</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Решение</th>
<th>Время</th>
<th>Эффективность</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Пэтч deps</strong></td>
<td>1-2ч</td>
<td>100%</td>
</tr>
<tr>
<td>WAF rules</td>
<td>30мин</td>
<td>90% (compensating)</td>
</tr>
<tr>
<td>Disable RSC</td>
<td>5мин</td>
<td>Полная изоляция</td>
</tr>
</tbody>
</table>
<h2>Защита на уровне стека: что дальше</h2>
<p dir="auto">Пэтч решает CVE-2025-55182, но RSC архитектура все равно требует paranoia. Думай о strict payload validation в кастом handlers - не полагайся на фреймворк blindly. Интегрируй schema validation (Zod/Yup) перед десериализацией Server Actions. В проде - rate limiting на RSC endpoints, CSP для client payloads.</p>
<p dir="auto">Масштаб экспозишена показывает: 39% cloud инстансов уязвимы, так что inventory - must have. Следующий шаг - audit всех serverless (Cloud Run, Vercel) на бандлы с vuln pkgs. Остается прототипировать custom RSC guards, если фичи критичны. Это эволюция - от client-side к secure-by-default серверу.</p>
]]></description><link>https://forum.exlends.ru/topic/1803/react-server-components-cve-2025-55182-i-zashita-ot-rce-v-production</link><generator>RSS for Node</generator><lastBuildDate>Sat, 17 Oct 2026 03:07:56 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/1803.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Mar 2026 10:39:40 GMT</pubDate><ttl>60</ttl></channel></rss>