← Все новости

Критическая RCE в React Server Components осталась без CVE — сканеры её не видятA critical React Server Components RCE has no CVE, and scanners stay silent

Уязвимость GHSA-xqc2-xf4c-x3h3 с оценкой 9.5 позволяет без аутентификации выполнить код через RSC-транспорт; исправления вышли 14 октября. CVE ей не присвоили, записи в глобальной базе GitHub нет, поэтому Dependabot и npm audit молчат, а публичных сообщений об эксплуатации на 8 ноября не было.GHSA-xqc2-xf4c-x3h3, rated 9.5, allows unauthenticated code execution through the RSC transport; fixes shipped on 14 October. It has no CVE and no entry in GitHub's global advisory database, so Dependabot and npm audit stay quiet, and there were no public reports of exploitation as of 8 November.

Уязвимость затрагивает транспорт React Server Components: react-server-dom-webpack, react-server-dom-parcel и react-server-dom-turbopack. Атакующему не нужна аутентификация — достаточно отправить специально собранный запрос на серверный endpoint, который разбирает RSC-поток. Оценка CVSS v4 — 9.5.

Затронуты версии 19.0.0–19.0.8, 19.1.0–19.1.9, 19.2.0–19.2.8 и 19.3.0. Исправления — в 19.0.9, 19.1.10, 19.2.9 и 19.3.1. В release notes к исправленным выпускам нет ни слова об уязвимости: там написано только «Improve transport protocol».

Почему это опасно именно сейчас

14 октября патчи вышли, но CVE у проблемы нет, и в глобальной базе рекомендаций GitHub записи не было как минимум до 8 ноября. Инструменты, которые читают эту базу, — Dependabot, npm audit и им подобные — проблему не показывают. То есть «сканер чистый» здесь означает ровно ничего.

С Next.js история отдельная: у него своё advisory GHSA-673q-mjm6-r5xr, исправленное в 16.4.1, а 3 ноября вышли 16.4.5 и 15.5.29 с семью умеренными исправлениями. Но ни один источник не утверждает, что 15.5.29 закрывает именно GHSA-xqc2-xf4c-x3h3, поэтому версию react-server-dom-* нужно проверять отдельно.

Публичных сообщений об эксплуатации в дикой природе на 8 ноября не зафиксировано. Это не повод ждать: уязвимость простая по условиям и не требует учётных данных.

Что делать

Проверьте lock-файлы: package-lock.json, yarn.lock, pnpm-lock.yaml. Пакета может не быть в package.json — его тянет фреймворк. Сравните версию с диапазонами выше и обновитесь до исправленной в вашей линии. Для Next.js обновите сам фреймворк, но версию RSC-пакета проверьте руками.

Заодно проверьте, нет ли рядом брата-близнеца GHSA-h3gv-c5rc-p453 — это DoS, выпущенный в тот же день.

The flaw affects the React Server Components transport: react-server-dom-webpack, react-server-dom-parcel and react-server-dom-turbopack. No authentication is required — an attacker only needs to send a crafted request to a server endpoint that parses the RSC stream. The CVSS v4 score is 9.5.

Versions 19.0.0–19.0.8, 19.1.0–19.1.9, 19.2.0–19.2.8 and 19.3.0 are affected. The fixes are 19.0.9, 19.1.10, 19.2.9 and 19.3.1. The release notes for the fixed versions do not mention a vulnerability at all: they say only “Improve transport protocol”.

Why it matters now

The patches shipped on 14 October, but the issue has no CVE and had no entry in GitHub’s global advisory database as of 8 November. Tools that read that database — Dependabot, npm audit and the like — will not flag it. A clean scanner run therefore means nothing here.

Next.js is a separate story: it has its own advisory, GHSA-673q-mjm6-r5xr, fixed in 16.4.1, and on 3 November Vercel shipped 16.4.5 and 15.5.29 with seven moderate fixes. But no source states that 15.5.29 carries the GHSA-xqc2-xf4c-x3h3 fix, so the react-server-dom-* version has to be checked directly.

There were no public reports of exploitation in the wild as of 8 November. That is no reason to wait: the prerequisites are simple and no credentials are needed.

What to do

Check your lockfiles: package-lock.json, yarn.lock, pnpm-lock.yaml. The package may be absent from package.json because a framework pulls it in. Compare the version with the ranges above and move to the fixed release on your line. For Next.js, update the framework too, but verify the RSC package version by hand.

While you are there, check for its same-day sibling GHSA-h3gv-c5rc-p453, a denial-of-service issue.

Источники