



Критическая уязвимость позволяет выполнить произвольный код на серверных компонентах React 19.0.0/19.1.0/19.1.1/19.2.0
В серверных компонентах веб-фреймворка React (RSC, React Server Components) обнаружена и устранена критическая уязвимость CVE-2025-55182, позволявшая через отправку запроса к серверному обработчику выполнить произвольный код на сервере. Уязвимость проявляется в экспериментальных компонентах react-server-dom-webpack, react-server-dom-parcel и react-server-dom-turbopack, применяемых для выполнения функций и формирования элементов интерфейса на сервере, а не на стороне клиента.
Уязвимость CVE-2025-55182 присутствует в версиях React 19.0.0, 19.1.0, 19.1.1 и 19.2.0. Проблема устранена в обновлениях React 19.0.1, 19.1.2 и 19.2.1. Уязвимые компоненты также применяются в пакетах react-router (20 млн загрузок в неделю), waku, @parcel/rsc (Parcel RSC plugin), @vitejs/plugin-rsc (Vite RSC plugin) и rwsdk (RedwoodSDK). В React Router проблема проявляется только при использовании экспериментального режима RSC.
По информации OpenNET, Проблема вызвана небезопасной десериализацией данных, полученных в HTTP-запросах к серверным обработчикам. Исправление свелось к замене в функции requireModule выражения "return moduleExports[metadata[NAME]];", не исключавшего подстановку прототипа, на вариант с проверкой через hasOwnProperty:
При наличии возможности подставить прототип, запуск команд в системе или выполнение JavaScript-кода в контексте текущего процесса (с обходом sandbox-изоляции) можно организовать через подстановку методов "vm.runInThisContext", "vm.runInNewContext", "child_process.execFileSync" и "child_process.execSync". Также возможно использование методов "fs.readFileSync" и "fs.writeFileSync" для чтения и записи произвольных файлов на сервере, насколько позволяют текущие права доступа (например, можно перезаписать
Читать на habr.com