
nmap MCP सर्वर में OS कमांड इंजेक्शन के लिए एडवाइजरी और हानिरहित PoC, डुप्लिकेट CVE ट्रैकिंग, डिटेक्शन मार्गदर्शन और शमन के साथ।
run_nmap_scan के माध्यम से OS कमांड इंजेक्शनrun_nmap_scan MCP टूल target और additionalFlags पैरामीटर के स्ट्रिंग इंटरपोलेशन द्वारा अपना कमांड बनाता है और इसे child_process.exec, अर्थात् /bin/sh -c के माध्यम से चलाता है।
⚠ पहले यह पढ़ें — डुप्लिकेट पहचानकर्ता
यह भेद्यता इस CVE ID के अस्तित्व में आने से पहले ही सार्वजनिक थी। यह CVE-2026-3484 / GHSA-xc68-rrqc-qgq3 द्वारा कवर की गई है, जिसे VulDB द्वारा सौंपा गया और 2026-03-03 को
mcp-nmap-server <= 1.0.1के विरुद्ध प्रकाशित किया गया — वही पैकेज, वही CWE-78child_process.execसिंक।CVE-2026-52616 को MITRE CNA-LR द्वारा 2026-07-13 को s1ko को एक स्वतंत्र रिपोर्ट के जवाब में सौंपा गया था। वह असाइनमेंट एक डुप्लिकेट प्रतीत होता है, और इसे इस रूप में चिह्नित किया गया है। पूर्व-विद्यमान पहचानकर्ता CVE-2026-3484 ही वह है जिसे उद्धृत किया जाना चाहिए।
यह रिपॉज़िटरी पूर्णता के लिए और डुप्लिकेट का दस्तावेज़ीकरण करने के लिए प्रकाशित की गई है, न कि नई खोज के दावे के रूप में। मूल सार्वजनिक प्रकटीकरण का श्रेय s1ko का नहीं है।
| CVE | CVE-2026-52616 — CVE-2026-3484 का डुप्लिकेट |
| CWE | CWE-78 (OS कमांड में प्रयुक्त विशेष तत्वों का अनुचित निराकरण) |
| पैकेज | mcp-nmap-server (npm) |
| प्रभावित | 1.0.1 और पहले — सभी प्रकाशित संस्करण |
| में ठीक किया गया | कोई नहीं — रिपॉज़िटरी संग्रहीत |
| CVSS v3.1 | AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 8.4 उच्च (stdio ट्रांसपोर्ट)। AV:N → 9.8 गंभीर यदि सर्वर को नेटवर्क ट्रांसपोर्ट में लपेटा जाए। |
| स्वतंत्र रूप से रिपोर्ट किया गया | s1ko (github.com/s1ko, [email protected]) |
| CVE सौंपा गया | 2026-07-13, MITRE CNA-LR |
इसे डुप्लिकेट हटाने वाले किसी भी व्यक्ति के लिए ध्यान देने योग्य एक नामकरण जाल: npm पैकेज
mcp-nmap-server है और रिपॉज़िटरी nmap-mcp-server है। दोनों क्रम
एक ही प्रोजेक्ट को संदर्भित करते हैं।
MCP टूल आर्ग्युमेंट हमलावर-प्रभावित होते हैं। वे एक LLM द्वारा उस सामग्री से उत्पन्न होते हैं जिसे
एजेंट प्रोसेस करता है — दस्तावेज़, वेब पेज, टूल आउटपुट — इसलिए
अप्रत्यक्ष प्रॉम्प्ट इंजेक्शन एक हमलावर को उन मानों पर नियंत्रण देता है जो एक टूल
हैंडलर प्राप्त करता है। एक हैंडलर जो उन मानों में से किसी को भी शेल में फीड करता है, उस
प्रभाव को MCP सर्वर चलाने वाले होस्ट पर कोड निष्पादन में बदल देता है। यह
पूर्ववर्ती मामले aws-mcp-server / CVE-2026-5058 के समान मॉडल है।
dist/index.js — लक्ष्य को एक कमांड स्ट्रिंग में जोड़ा जाता है जिसे फिर
exec को सौंपा जाता है:
command += ` ${target}`;
…
const { stdout, stderr } = await promisify(exec)(command);
child_process.exec अपने आर्ग्युमेंट को /bin/sh -c में चलाता है, इसलिए कॉलर द्वारा दिया गया सब कुछ शेल सिंटैक्स होता है। Zod इनपुट स्कीमा z.string() घोषित करता है, जो केवल टाइप को मान्य करता है और सामग्री के बारे में कुछ नहीं कहता, इसलिए मेटाकैरेक्टर पास हो जाते हैं। additionalFlags उसी रास्ते से उसी स्ट्रिंग तक पहुँचता है।
run_nmap_scan कॉल जिसमें target को
127.0.0.1; touch /tmp/marker; echo INJECTED पर सेट किया गया है, यह उत्पन्न करता है:
/bin/sh -c "nmap … 127.0.0.1; touch /tmp/marker; echo INJECTED"
poc/driver.mjs stdio के माध्यम से MCP से बात करता है: यह सर्वर को प्रारंभ करता है, एक इंजेक्ट किए गए target के साथ run_nmap_scan के लिए एक tools/call जारी करता है, और एक मार्कर फ़ाइल की जाँच करता है। पेलोड एक सौम्य touch है।
npm pack [email protected]
tar xf mcp-nmap-server-1.0.1.tgz && cd package && npm install
node ../poc/driver.mjs
प्रभावित संस्करण पर अपेक्षित:
==== POC RESULT (mcp-nmap-server) ====
marker /tmp/PWNED_nmap created: true
verdict: CONFIRMED — command injection executed
nmap को इंस्टॉल करने की आवश्यकता नहीं है — इंजेक्ट किया गया कमांड उसी
/bin/sh -c स्ट्रिंग में चलता है, चाहे शुरुआती बाइनरी रिज़ॉल्व हो या न हो।
2026-06-01 को एक पृथक कंटेनर में सत्यापित किया गया और 2026-06-13 को पुनः सत्यापित किया गया।
इसे केवल उसी इंफ्रास्ट्रक्चर के विरुद्ध चलाएँ जिसका परीक्षण करने के लिए आप अधिकृत हैं।
nmap कमांड लाइन जिसमें ;, &&, ||, |, एक बैकटिक या $( हो।sh -c प्रोसेस जिसकी कमांड लाइन nmap से शुरू होती है और जिसमें विभाजक के बाद
दूसरा कमांड हो — यह एक प्रोसेस-ट्री सिग्नल (auditd, eBPF, Falco, EDR) है
जो एप्लिकेशन लॉगिंग पर निर्भर नहीं करता।nmap अपेक्षित है; एक शेल,
एक इंटरप्रेटर या एक नेटवर्क क्लाइंट नहीं।target या additionalFlags में शेल
मेटाकैरेक्टर हों। एक target को IP, CIDR या होस्टनेम से मेल खाना चाहिए और कुछ नहीं।MITRE ATT&CK T1059.004 Command and Scripting Interpreter: Unix Shell।
रिपॉज़िटरी संग्रहीत (archived) और केवल-पढ़ने योग्य है, npm पर नवीनतम प्रभावित 1.0.1 है, और कोई पैच किया गया रिलीज़ प्रकाशित नहीं किया जाएगा। हटाना ही शमन है:
target को IP/CIDR/होस्टनेम
पैटर्न के विरुद्ध सत्यापित किया जा सके और additionalFlags को कमांड
स्ट्रिंग तक पहुँचने से पहले allowlist किया जा सके।जो भी इसे फोर्क करे, उसके लिए समाधान यह है कि exec के लिए स्ट्रिंग बनाने के बजाय
एक आर्ग्युमेंट वेक्टर के साथ execFile("nmap", [...args]) को कॉल किया जाए। सामग्री सत्यापन, केवल
Zod प्रकार सत्यापन नहीं, अंतर्निहित आवश्यकता है।
NIST SP 800-53r5 SI-10; OWASP ASVS v4 §5.3.8; CWE-78 शमन M1 और M2।
| तिथि | घटना |
|---|---|
| 2026-03-03 | CVE-2026-3484 / GHSA-xc68-rrqc-qgq3 VulDB द्वारा प्रकाशित — मूल सार्वजनिक प्रकटीकरण, किसी अन्य रिपोर्टर द्वारा |
| 2026-05-29 | प्रकाशित टारबॉल की स्रोत समीक्षा द्वारा स्वतंत्र रूप से पहचाना गया, मार्च की सलाह से अनजान |
| 2026-06-01 | एक पृथक कंटेनर में MCP stdio पर गतिशील रूप से सत्यापित |
| 2026-06-13 | सबमिशन-पूर्व डुप्लीकेट हटाने के दौरान डुप्लीकेट पहचाना गया; रिपॉज़िटरी के संग्रहीत होने की पुष्टि हुई और Private Vulnerability Reporting अनुपलब्ध है। आंतरिक निर्णय: फाइल न करें |
| 2026-07-13 | MITRE CNA-LR ने बावजूद इसके CVE-2026-52616 आवंटित किया, खोजकर्ता के रूप में s1ko को श्रेय देते हुए |
| 2026-08-22 | यह लेख प्रकाशित, जो डुप्लीकेट का दस्तावेज़ीकरण करता है |
aws-mcp-server)उसी शोध दौर से सहयोगी सलाहें: CVE-2026-52617, CVE-2026-52618।
MIT — देखें LICENSE।