
Nuclio Dashboard (NOP mode) accepts unauthenticated POST /api/functions. The spec.handler field isn't path-validated, so ../../../../tmp/x.txt:handler escapes the build tempdir via path.Join, letting an attacker write arbitrary content to any path as root. (CVE-2026-52832, ≤1.15.27)
Nuclio Dashboard (NOP モード) は、認証なしで POST /api/functions を受け入れます。spec.handler フィールドはパス検証されないため、../../../../tmp/x.txt:handler は path.Join を経由してビルド一時ディレクトリから脱出し、攻撃者は root として任意のパスに任意のコンテンツを書き込むことができます。(CVE-2026-52832、≤1.15.27)
spec.handler のパストラバーサルにより、Nuclio Dashboard で認証なしの任意ファイル書き込み(root 権限)が可能です。
| CVE | CVE-2026-52832 |
| GHSA | GHSA-wpcj-rmv4-86qg |
| 影響を受けるバージョン | Nuclio ≤ 1.15.27 |
| 修正バージョン | 1.16.5 (PR #4143、コミット 2a55d3a) |
| 分類 | CWE-22 パストラバーサル → 任意ファイル書き込み |
| CVSS | 7.5 High (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N) |
Nuclio Dashboard は、デフォルトの NOP 認証モードで 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 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
curl http://127.0.0.1:8070/api/functions # expect: {}
chmod +x poc.sh ./poc.sh http://127.0.0.1:8070 nuclio-vuln
認証されていないネットワーク攻撃者は、Dashboard コンテナのファイルシステム内の任意のファイルを、root として任意のコンテンツで作成または上書きできます。
pkg/processor/build/builder.go の os.WriteFile の前に common.IsPathWithinDir を追加した Nuclio ≥ 1.16.5 にアップグレードしてください。さらに、NOP の代わりに認証を有効にし、Dashboard へのネットワークアクセスを制限し、不要な場合は Docker ソケットをマウントしないでください。
許可されたセキュリティ研究および防御目的にのみ使用してください。同梱の PoC は、無害なタイムスタンプ付きマーカーファイルのみを書き込みます。所有していない、またはテスト許可がないシステムに対して実行しないでください。