Уязвимость в серверных компонентах React, позволяющая выполнить код на сервере

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 730
Зарегистрирован: 20.08.2022

#

Уязвимость в серверных компонентах React, позволяющая выполнить код на сервере
Дата публикации:Thu, 04 Dec 2025 11:12:04 +0300

В серверных компонентах web-фреймворка React (RSC, React Server Components) устранена уязвимость (CVE-2025-55182), позволявшая через отправку запроса к серверному обработчику выполнить произвольный код на сервере. Уязвимости присвоен критический уровень опасности (10 из 10). Уязвимость проявляется в экспериментальных компонентах react-server-dom-webpack, react-server-dom-parcel и react-server-dom-turbopack, применяемых для выполнения функций и формирования элементов интерфейса на сервере, а не на стороне клиента.
Проблема вызвана небезопасной десериализацией данных, полученных в HTTP-запросах к серверным обработчикам. Обработчики "vm#runInThisContext", "vm#runInNewContext", "child_process#execFileSync" и "child_process#execSync" можно использовать для запуска команд в системе или выполнения JavaScript-кода в контексте текущего процесса (с обходом sandbox-изоляции). Также возможно использование обработчиков "fs#readFileSync" и "fs#writeFileSync" для чтения и записи произвольных файлов на сервере, насколько позволяют текущие права доступа. Для атаки не требуется прохождение аутентификации. Доступен прототип эксплоита.
# Запуск команды whoami curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"child_process#execSync","bound":["whoami"]}' # Выполнение JavaScript-кода 1+1 curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"vm#runInThisContext","bound":["1+1"]}' # Чтение файла /etc/passwd curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"fs#readFileSync","bound":["/etc/passwd","utf8"]}' Подверженность систем уязвимостям зависит от применения на них уязвимых серверных компонентов react-server-dom-webpack, react-server-dom-parcel и react-server-dom-turbopack. Приложения не использующие сервер уязвимость не затрагивает. Степень охвата уязвимостью рабочих систем, в которых используется React, пока не ясна. С одной стороны, React является одним из самых популярных web-фреймворков (используется примерно на 6% web-сайтов), а уязвимые компоненты развиваются в основном репозитории и входят в состав релизов. Уязвимые компоненты также поддерживаются в основанных на React фреймворках, таких как Next.js и react-router.
С другой стороны, генерация контента на сервере через React Server Components не часто используемая функция (большинство React-сайтов отрисовывают интерфейс только на стороне клиента), а уязвимые компоненты помечены как экспериментальные и не гарантирующие корректную работу. Данные компоненты имеют относительно небольшое число прямых загрузок из репозитория NPM: react-server-dom-webpack - 670 тысяч в неделю, react-server-dom-parcel - 7 тысяч и react-server-dom-turbopack - 32 тысячи, для сравнения NPM-пакет React имеет 45 млн загрузок в неделю.
Уязвимость присутствует версиях React 9.0.0, 19.1.0, 19.1.1 и 19.2.0, и устранена в обновлениях React 19.0.1, 19.1.2 и 19.2.1. Помимо самого React уязвимость затрагивает (CVE-2025-66478) фреймворк Next.js (16 млн загрузок в неделю) и проявляется в приложениях, использующих App Router и ветки Next.js 15.x и 16.x (пользователям указанных веток рекомендовано как можно скорее установить обновление Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 или 16.0.7). Уязвимые компоненты также применяются в пакетах react-router (20 млн загрузок в неделю), waku, @parcel/rsc, @vitejs/plugin-rsc и rwsdk.

Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=64373

Жизнь за Нер'зула!

Ответить