mdvpat/CVE-2026-52832-PoC-exploit-nuclio-dashboard
GitHub: mdvpat/CVE-2026-52832-PoC-exploit-nuclio-dashboard
针对 Nuclio Dashboard ≤1.15.27 路径穿越漏洞(CVE-2026-52832)的 PoC 漏洞利用工具,演示未经身份验证的任意文件写入。
Stars: 0 | Forks: 0
# CVE-2026-52832-PoC-exploit-nuclio-dashboard
Nuclio Dashboard(NOP 模式)接受未经身份验证的 POST /api/functions 请求。`spec.handler` 字段未经过路径验证,因此 `../../../../tmp/x.txt:handler` 会通过 `path.Join` 逃逸出构建临时目录,允许攻击者以 root 身份将任意内容写入任何路径。(CVE-2026-52832,≤1.15.27)
# CVE-2026-52832 Nuclio Dashboard 路径穿越 → 任意文件写入
Nuclio Dashboard 中通过 `spec.handler` 的路径穿越漏洞,可实现未经身份验证的(以 root 身份)任意文件写入。
| | |
|---|---|
| CVE | CVE-2026-52832 |
| GHSA | GHSA-wpcj-rmv4-86qg |
| 受影响版本 | Nuclio ≤ 1.15.27 |
| 修复版本 | 1.16.5 (PR #4143, commit `2a55d3a`) |
| 分类 | CWE-22 路径穿越 → 任意文件写入 |
| CVSS | 7.5 高危 (`AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N`) |
## 摘要
处于默认 `NOP` 身份验证模式的 Nuclio Dashboard 接受未经身份验证的 `POST /api/functions` 请求。`spec.handler` 字段(`module:entrypoint`)未经过路径验证,因此像 `../../../../tmp/x.txt:handler` 这样的值会通过 `path.Join(tempDir, moduleFileName)` 逃逸出构建临时目录,允许攻击者将任意的 base64 内容(`spec.build.functionSourceCode`)写入 Dashboard 容器内的任何路径。该进程以 `uid=0 (root)` 身份运行。
## 实验环境搭建
易受攻击的目标:
\`\`\`
docker run -d --name nuclio-vuln -p 127.0.0.1:8070:8070 \
-v /var/run/docker.sock:/var/run/docker.sock \
quay.io/nuclio/dashboard:1.15.27-amd64
\`\`\`
已修复的对照组:
\`\`\`
docker run -d --name nuclio-patched -p 127.0.0.1:8071:8070 \
-v /var/run/docker.sock:/var/run/docker.sock \
quay.io/nuclio/dashboard:1.16.5-amd64
\`\`\`
等待直到 `curl http://127.0.0.1:8070/api/functions` 返回 `200 {}`。
## 在本地目标上运行
\`\`\`
./poc/poc.sh http://127.0.0.1:8070 nuclio-vuln
\`\`\`
预期结果:`[+] SUCCESS`,一个无害的标记文件被写入到构建临时目录之外,并由 root 拥有。
针对已修复的镜像,相同的请求会被拒绝并返回 `HTTP 500` 和 `Handler module name resolves outside the build directory`,且不会创建任何文件。
## 示例:使用 Docker 在本地运行
# 1. 启动易受攻击的目标
docker run -d --name nuclio-vuln -p 127.0.0.1:8070:8070 \
-v /var/run/docker.sock:/var/run/docker.sock \
quay.io/nuclio/dashboard:1.15.27-amd64
# 2. 等待直到它响应
curl http://127.0.0.1:8070/api/functions # 预期: {}
# 3. 运行
chmod +x poc.sh
./poc.sh http://127.0.0.1:8070 nuclio-vuln
## 影响
未经身份验证的网络攻击者可以 root 身份在 Dashboard 容器的文件系统中创建或覆盖包含任意内容的任何文件。
## 修复建议
升级至 Nuclio ≥ 1.16.5,该版本在 `pkg/processor/build/builder.go` 的 `os.WriteFile` 之前增加了 `common.IsPathWithinDir` 检查。此外:启用身份验证以替代 `NOP` 模式,限制对 Dashboard 的网络访问,并在不需要时避免挂载 Docker socket。
## 免责声明
仅供授权的安全研究和防御目的使用。包含的 PoC 仅写入一个无害的带有时间戳的标记文件。请勿在您不拥有或未获准测试的系统上运行。
标签:Cutter, DNS 反向解析, Nuclio Dashboard, PoC, Serverless 安全, 任意文件写入, 暴力破解, 网络信息收集, 请求拦截, 路径遍历