
Уязвимость React2Shell (CVE-2025-55182 / CVE-2025-66478) Полный скрипт
Инструмент класса proof-of-concept для демонстрации критической уязвимости React2Shell (CVE-2025-55182 / CVE-2025-66478) только в авторизованных локальных тестовых средах.
Эта уязвимость (CVSS 10.0) активно эксплуатируется сложными угрозами. По данным Amazon Threat Intelligence, несколько связанных с Китаем групп, спонсируемых государством, включая Earth Lamia и Jackpot Panda, начали использовать публичные эксплойты в течение нескольких часов после раскрытия информации. Агентство по кибербезопасности и защите инфраструктуры США (CISA) внесло её в свой каталог Known Exploited Vulnerabilities (KEV).
CVE-2025-55182 (React2Shell) — это критическая уязвимость удалённого выполнения кода (RCE) до аутентификации в протоколе "Flight" React Server Components (RSC). Отдельный идентификатор CVE-2025-66478 был присвоен для Next.js, но впоследствии отклонён как дубликат CVE-2025-55182, поскольку обе уязвимости имеют одну и ту же первопричину.
chmod +x pwn-nextjs.sh
./pwn-nextjs.sh [TARGET_URL] [COMMAND]
# Target specific URL
./pwn-nextjs.sh https://vulnerable-app.example.com "whoami"
root
Уязвимость берёт начало в определённых пакетах React, затрагивая любые фреймворки, которые их включают.
Не затронуты: Next.js 13.x, стабильные выпуски Next.js 14.x, приложения Pages Router и Edge Runtime не затронуты.
Протокол RSC Flight сериализует данные для взаимодействия клиента и сервера. Уязвимость кроется в логике десериализации на сервере, которая небезопасно разворачивает свойства объектов из входящей полезной нагрузки без надлежащей проверки. Это позволяет атакующему внедрять вредоносные ключи (например, __proto__ или constructor) в запрос, что приводит к загрязнению прототипа (prototype pollution).
После загрязнения цепочки прототипов сервер следует путям выполнения, на которые влияет атакующий. Это можно объединить в цепочку для выполнения произвольного JavaScript-кода с привилегиями сервера, что приводит к полному удалённому выполнению кода (RCE).
Исследователи безопасности наблюдали успешные эксплойты, приводящие к:
.aws/credentials).Установка исправлений обязательна и является единственным способом полностью устранить уязвимость. Не существует настройки конфигурации для отключения уязвимого пути выполнения кода.
# For Next.js users, upgrade to the latest patched version in your release line.
# Example: If you are on Next.js 15.5.x:
npm install [email protected]
# Also ensure React dependencies are updated:
npm install react@latest react-dom@latest
Проверьте, что ваши файлы package-lock.json или yarn.lock отражают исправленные версии пакетов react-server-dom-* (19.0.1, 19.1.2 или 19.2.1).
Пока выполняется установка исправлений, разверните правила Web Application Firewall (WAF) для блокировки попыток эксплуатации:
AWSManagedRulesKnownBadInputsRuleSet (v1.24+) включает правила для этой CVE.cve-canary.Примечание: Правила WAF — это временная, неполная мера защиты. Они не заменяют необходимость установки исправлений.
Проверяйте журналы на наличие этих признаков попыток эксплуатации:
next-action или rsc-action-id. Тела запросов, содержащие шаблоны вида $@ или "status":"resolved_model".whoami, id, uname), чтение /etc/passwd или запись файлов в /tmp/ (например, pwned.txt) процессами Node.js.Этот инструмент демонстрирует уязвимость с оценкой CVSS 10.0 (максимальная критичность), которая активно эксплуатируется спонсируемыми государствами группами.
Помните: Этот инструмент демонстрирует, почему установка исправлений срочно необходима. Используйте эти знания для повышения уровня безопасности и защиты систем, а не для их компрометации. Убедитесь, что все ваши зависимости обновлены до перечисленных выше исправленных версий.
| Компонент | Затронутые версии | Исправленные версии | Примечания |
|---|
| Пакеты React ( 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 (App Router) | 15.x, 16.x, 14.3.0-canary.77 и новее | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 | Основной затронутый фреймворк. |
| Другие фреймворки | React Router, Waku, RedwoodJS, Parcel (@parcel/rsc), Vite RSC Plugin | Обновитесь до версий, использующих исправленные пакеты React (>19.0.1, 19.1.2, 19.2.1). | Уязвимы при использовании затронутых пакетов React. |