
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 (modalità NOP) accetta POST /api/functions senza autenticazione. Il campo spec.handler non è validato a livello di percorso, quindi ../../../../tmp/x.txt:handler fuoriesce dalla directory temporanea di build tramite path.Join, consentendo a un attaccante di scrivere contenuto arbitrario in qualsiasi percorso come root. (CVE-2026-52832, ≤1.15.27)
Scrittura arbitraria di file non autenticata (come root) in Nuclio Dashboard tramite path traversal in spec.handler.
| CVE | CVE-2026-52832 |
| GHSA | GHSA-wpcj-rmv4-86qg |
| Affected | Nuclio ≤ 1.15.27 |
| Fixed | 1.16.5 (PR #4143, commit 2a55d3a) |
| Class | CWE-22 Path Traversal → Scrittura Arbitraria di File |
| CVSS | 7.5 Alto (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N) |
Target vulnerabile:
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
Controllo con patch:
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
Attendi finché curl http://127.0.0.1:8070/api/functions non restituisce 200 {}.
./poc/poc.sh http://127.0.0.1:8070 nuclio-vuln
Risultato atteso: [+] SUCCESS; un file segnaposto innocuo viene scritto al di fuori della directory temporanea di build, di proprietà di root.
Con l'immagine con patch, la stessa richiesta viene rifiutata con HTTP 500 e Handler module name resolves outside the build directory, e non viene creato alcun file.
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 # previsto: {}
chmod +x poc.sh ./poc.sh http://127.0.0.1:8070 nuclio-vuln
Un attaccante di rete non autenticato può creare o sovrascrivere qualsiasi file con contenuto arbitrario nel filesystem del container Dashboard come root.
Aggiorna a Nuclio ≥ 1.16.5, che aggiunge common.IsPathWithinDir prima di os.WriteFile in pkg/processor/build/builder.go. In aggiunta: abilita l'autenticazione invece di NOP, limita l'accesso di rete al Dashboard ed evita di montare il socket Docker dove non necessario.
Solo per ricerca sulla sicurezza autorizzata e finalità difensive. Il PoC incluso scrive soltanto un innocuo file marcatore con timestamp. Non eseguirlo su sistemi di cui non sei proprietario o per i quali non hai il permesso di test.