
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 के माध्यम से बिल्ड tempdir से बाहर निकल जाता है, जिससे हमलावर रूट के रूप में किसी भी पाथ पर आर्बिट्रेरी सामग्री लिख सकता है। (CVE-2026-52832, ≤1.15.27)
Nuclio Dashboard में spec.handler में पाथ ट्रैवर्सल के माध्यम से, बिना प्रमाणीकरण के आर्बिट्रेरी फ़ाइल राइट (रूट के रूप में)।
| 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) के माध्यम से बिल्ड tempdir से बाहर निकल जाता है, जिससे हमलावर Dashboard कंटेनर में किसी भी पाथ पर आर्बिट्रेरी बेस64 सामग्री (spec.build.functionSourceCode) लिख सकता है। यह प्रक्रिया 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 — बिल्ड tempdir के बाहर एक हानिरहित मार्कर फ़ाइल लिखी जाती है, जिसका स्वामी 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 कंटेनर के फ़ाइल सिस्टम में रूट के रूप में किसी भी फ़ाइल को आर्बिट्रेरी सामग्री के साथ बना या अधिलेखित कर सकता है।
Nuclio ≥ 1.16.5 में अपग्रेड करें, जो pkg/processor/build/builder.go में os.WriteFile से पहले common.IsPathWithinDir जोड़ता है। इसके अतिरिक्त: NOP के स्थान पर प्रमाणीकरण सक्षम करें, Dashboard तक नेटवर्क पहुँच प्रतिबंधित करें, और जहाँ आवश्यक न हो वहाँ Docker सॉकेट माउंट करने से बचें।
केवल अधिकृत सुरक्षा अनुसंधान और रक्षात्मक उद्देश्यों के लिए। शामिल PoC केवल एक हानिरहित टाइमस्टैम्प-युक्त मार्कर फ़ाइल लिखता है। इसे उन सिस्टमों पर न चलाएँ जिनके स्वामी आप नहीं हैं या जिनके परीक्षण की अनुमति आपके पास नहीं है।