
Эксплойт proof-of-concept для CVE-2025-55182 (React2Shell), критическая RCE-уязвимость до аутентификации в React Server Components. Демонстрирует небезопасную десериализацию в протоколе Flight для авторизованного тестирования безопасности и обучения.
Инструмент для демонстрации критической уязвимости React2Shell (CVE-2025-55182 / CVE-2025-66478) только в авторизованных локальных тестовых средах.
Эта уязвимость (CVSS 10.0) активно эксплуатируется продвинутыми угрозами. Согласно отчетам Amazon Threat Intelligence, несколько государственных групп, связанных с Китаем, включая Earth Lamia и Jackpot Panda, начали использовать публичные эксплойты в течение нескольких часов после раскрытия. Агентство по кибербезопасности и защите инфраструктуры США (CISA) добавило её в свой каталог известных эксплуатируемых уязвимостей (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) в запрос, что приводит к загрязнению прототипа.
Как только цепочка прототипов загрязнена, сервер следует путям выполнения, заданным злоумышленником. Это может быть объединено для выполнения произвольного 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).
Пока проводится патчинг, разверните правила брандмауэра веб-приложений (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. |