
Nuclio Dashboard (NOP-Modus) akzeptiert unauthentifizierte POST /api/functions. Das Feld spec.handler wird nicht auf Pfadvalidierung geprüft, sodass ../../../../tmp/x.txt:handler über path.Join aus dem Build-Tempverzeichnis entkommt und es einem Angreifer ermöglicht, beliebigen Inhalt als root an beliebigen Pfaden zu schreiben. (CVE-2026-52832, ≤1.15.27)
Nuclio Dashboard (NOP-Modus) akzeptiert POST /api/functions ohne Authentifizierung. Das Feld spec.handler wird nicht auf Pfade validiert, sodass ein Wert wie ../../../../tmp/x.txt:handler über path.Join das Build-Tempverzeichnis verlässt. Dadurch kann ein Angreifer beliebigen Inhalt als root an beliebige Pfade schreiben. (CVE-2026-52832, ≤1.15.27)
Nicht authentifiziertes Schreiben beliebiger Dateien (als root) im Nuclio Dashboard durch Path Traversal in spec.handler.
| CVE | CVE-2026-52832 |
| GHSA | GHSA-wpcj-rmv4-86qg |
| Betroffen | Nuclio ≤ 1.15.27 |
| Behoben | 1.16.5 (PR #4143, commit 2a55d3a) |
| Klasse | CWE-22 Path Traversal → Schreiben beliebiger Dateien |
| CVSS | 7.5 Hoch (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N) |
Nuclio Dashboard akzeptiert im Standard-Authentifizierungsmodus NOP POST /api/functions ohne Authentifizierung. Das Feld spec.handler (module:entrypoint) unterliegt keiner Pfadvalidierung, sodass ein Wert wie ../../../../tmp/x.txt:handler über path.Join(tempDir, moduleFileName) das Build-Tempverzeichnis verlässt. Ein Angreifer kann so beliebigen Base64-Inhalt (spec.build.functionSourceCode) an beliebige Pfade im Dashboard-Container schreiben. Der Prozess läuft als uid=0 (root).
Verwundbares Ziel:
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
Gepatchte Kontrolle:
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
Warten Sie, bis curl http://127.0.0.1:8070/api/functions 200 {} zurückgibt.
./poc/poc.sh http://127.0.0.1:8070 nuclio-vuln
Erwartet: [+] SUCCESS – eine harmlose Markierungsdatei wird außerhalb des Build-Tempverzeichnisses geschrieben und gehört root.
Beim gepatchten Image wird dieselbe Anfrage mit HTTP 500 und Handler module name resolves outside the build directory abgelehnt, und es wird keine Datei erstellt.
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
Ein nicht authentifizierter Netzwerk-Angreifer kann im Dateisystem des Dashboard-Containers als root beliebige Dateien mit beliebigem Inhalt erstellen oder überschreiben.
Führen Sie ein Upgrade auf Nuclio ≥ 1.16.5 durch, das in pkg/processor/build/builder.go vor os.WriteFile eine Prüfung mit common.IsPathWithinDir hinzufügt. Zusätzlich: Aktivieren Sie Authentifizierung anstelle von NOP, beschränken Sie den Netzwerkzugriff auf das Dashboard und vermeiden Sie das Einhängen des Docker-Sockets, wo dies nicht erforderlich ist.
Nur für autorisierte Sicherheitsforschung und defensive Zwecke. Der enthaltene PoC schreibt lediglich eine harmlose, mit Zeitstempel versehene Markierungsdatei. Führen Sie ihn nicht gegen Systeme aus, die Ihnen nicht gehören oder für die Sie keine Testberechtigung haben.