Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-52618 — @webfer/mcp-ansible-drupal में executeDeployment extraVars के माध्यम से OS कमांड इंजेक्शन के लिए PoC सहित CVE-2026-52618 का दस्तावेज़ीकरण करता है, साथ ही पहचान मार्गदर्शन और शमन उपाय भी प्रदान करता है। | Kitploit
उपकरण/GitHubGitHub/s1ko/cve-2026-52618
भेद्यता विश्लेषणशोषणAI सुरक्षा
GitHubs1ko/cve-2026-52618

CVE-2026-52618

@webfer/mcp-ansible-drupal में executeDeployment extraVars के माध्यम से OS कमांड इंजेक्शन के लिए PoC सहित CVE-2026-52618 का दस्तावेज़ीकरण करता है, साथ ही पहचान मार्गदर्शन और शमन उपाय भी प्रदान करता है।

रिपॉजिटरी देखें
1 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-52618 — @webfer/mcp-ansible-drupal: executeDeployment extra vars के माध्यम से OS कमांड इंजेक्शन

spawn(cmd[0], cmd.slice(1), { shell: true }) तर्क सरणी को बिना एस्केप किए एक ही /bin/sh -c स्ट्रिंग में पुनः जोड़ता है, इसलिए executeDeployment MCP टूल को आपूर्ति किए गए extraVars मान में मौजूद कोई भी शेल मेटाकैरेक्टर सर्वर चला रहे होस्ट पर निष्पादित हो जाता है।

यह समस्या ठीक कर दी गई है। 2.0.3 या उसके बाद के संस्करण में अपग्रेड करें।

खतरा मॉडल

MCP टूल तर्क हमलावर-प्रभावित होते हैं। वे एक LLM द्वारा एजेंट द्वारा संसाधित सामग्री — दस्तावेज़, वेब पेज, टूल आउटपुट — से उत्पन्न होते हैं, इसलिए अप्रत्यक्ष प्रॉम्प्ट इंजेक्शन हमलावर को उन मानों पर नियंत्रण दे देता है जो टूल हैंडलर प्राप्त करता है। जो हैंडलर उन मानों में से किसी को शेल में डालता है, वह उस प्रभाव को MCP सर्वर चला रहे होस्ट पर कोड निष्पादन में बदल देता है। यह वही मॉडल है जो पूर्व मामले aws-mcp-server / CVE-2026-5058 में था।

परिणाम यह है कि "कॉल करने वाला एक विश्वसनीय LLM है" कोई शमन नहीं है। टूल तर्क अविश्वसनीय इनपुट हैं।

निष्पादन

2.0.0 में src/helpers/runAnsible.ts एक तर्क सरणी बनाता था और फिर उसे शेल सक्षम करके चलाता था:

root@kitploit:~
const proc = spawn(ansibleCmd[0], ansibleCmd.slice(1), { shell: true });

shell: true के साथ Node ansibleCmd[0] को शेष तत्वों के साथ argv के रूप में निष्पादित नहीं करता। यह पूरी सरणी को एक स्ट्रिंग में जोड़कर /bin/sh -c को सौंप देता है, बिना तत्वों पर कोई कोटिंग या एस्केपिंग लागू किए। इसलिए ;, &&, |, बैकटिक या $() ले जाने वाला कोई भी तत्व इच्छित कमांड से बाहर निकल जाता है।

पहुँच योग्य मार्ग executeDeployment MCP टूल (src/tools/executeDeployment.ts) है, जो कॉलर द्वारा आपूर्ति किए गए extraVars को --extra-vars key=value के रूप में सरणी में अग्रेषित करता है। ; touch /tmp/marker ; का मान देता है:

root@kitploit:~
/bin/sh -c "ansible-playbook -i inv.ini play.yml ... --extra-vars deploy_env=; touch /tmp/marker ; echo INJECTED"

उसी संस्करण में एक द्वितीयक सिंक ने projectRoot को execSync('ansible-vault encrypt ' + vaultPath) में इंटरपोलेट किया।

पुनरुत्पादन

poc/driver.mjs एक निर्मित extraVars मान के साथ runAnsible को सीधे कॉल करता है और मार्कर फ़ाइल की जाँच करता है। ansible-playbook को स्थापित होने की आवश्यकता नहीं है — इंजेक्ट किया गया कमांड उसी /bin/sh -c स्ट्रिंग में चलता है, चाहे अग्रणी बाइनरी मिले या न मिले।

root@kitploit:~
npm pack @webfer/[email protected] && tar xf webfer-mcp-ansible-drupal-2.0.0.tgz
node poc/driver.mjs

प्रभावित संस्करण पर अपेक्षित:

root@kitploit:~
{"target":"@webfer/mcp-ansible-drupal 2.0.0","sink":"runAnsible -> spawn(cmd[0], cmd.slice(1), {shell:true})","vector":"executeDeployment extraVars value","marker":"/tmp/PWNED_ansible","created":true,"verdict":"CONFIRMED - command injection executed"}

2026-06-01 को एक पृथक कंटेनर में मान्य किया गया और 2026-06-13 को एक हानिरहित touch मार्कर के साथ पुनः मान्य किया गया। इसे केवल उन्हीं अवसंरचनाओं पर चलाएँ जिनके परीक्षण के लिए आप अधिकृत हैं।

पहचान

  • कोई भी --extra-vars मान जो ansible-playbook तक पहुँचता है और जिसमें ;, &&, ||, |, बैकटिक या $( हो। वैध Ansible वेरिएबल मान अनिवार्य रूप से ऐसा कभी नहीं करते।
  • एक sh -c प्रक्रिया जिसकी कमांड लाइन में ansible-playbook और विभाजक के बाद एक दूसरा कमांड हो — एक प्रक्रिया-वृक्ष संकेत (auditd, eBPF, Falco, EDR) जो एप्लिकेशन लॉगिंग पर निर्भर नहीं करता।
  • MCP सर्वर प्रक्रिया की अप्रत्याशित चाइल्ड प्रक्रियाएँ। ansible-playbook, git और ansible-vault अपेक्षित हैं; शेल, इंटरप्रेटर या नेटवर्क क्लाइंट नहीं।
  • MCP टूल-कॉल लॉग जहाँ executeDeployment तर्कों में शेल मेटाकैरेक्टर हों। टूल तर्कों को लॉग करें — अधिकांश MCP डिप्लॉयमेंट ऐसा नहीं करते, और एप्लिकेशन की दृष्टि से इंजेक्ट किया गया मान दिखने का यही एकमात्र स्थान है।

MITRE ATT&CK T1059.004 Command and Scripting Interpreter: Unix Shell।

शमन

@webfer/mcp-ansible-drupal 2.0.3 या उसके बाद के संस्करण में अपग्रेड करें। वर्तमान स्रोत spawn(ansibleCmd[0], ansibleCmd.slice(1), { … }) को बिना shell विकल्प के कॉल करता है, इसलिए सरणी argv के रूप में पारित होती है और मेटाकैरेक्टर अपना अर्थ खो देते हैं।

MCP टूल हैंडलर के लिए सामान्य नियम, और यह फिक्स यहाँ वही लागू करता है:

  • जब तर्क सरणी पहले से उपलब्ध हो तो shell: true कभी सक्षम न करें। सरणी रूप का अस्तित्व ही शेल से बचने के लिए है।
  • टूल तर्क के स्ट्रिंग इंटरपोलेशन द्वारा कभी भी कमांड न बनाएँ। स्पष्ट तर्क वेक्टर के साथ execFile/spawn का उपयोग करें।
  • केवल प्रकार नहीं, बल्कि सामग्री को मान्य करें। एक Zod z.string() यह सिद्ध करता है कि मान एक स्ट्रिंग है, लेकिन यह नहीं कि उसमें क्या है। जहाँ मान सेट ज्ञात हो वहाँ अनुमतिपत्र (allowlist) का उपयोग करें; जहाँ नहीं, वहाँ शेल मेटाकैरेक्टर अस्वीकार करें।
  • MCP सर्वर को एक अविशेषाधिकार प्राप्त (unprivileged) उपयोगकर्ता के रूप में चलाएँ, जिसमें टूल को वास्तव में आवश्यक न्यूनतम फाइलसिस्टम और नेटवर्क पहुँच हो।

NIST SP 800-53r5 SI-10; OWASP ASVS v4 §5.3.8; CWE-78 शमन M1 और M2।

समयरेखा

दिनांकघटना

संदर्भ

  • npm पैकेज — https://www.npmjs.com/package/@webfer/mcp-ansible-drupal
  • रिपॉजिटरी — https://github.com/webfer/MCP-Ansible-Drupal
  • MCP खतरा मॉडल के लिए पूर्व मामला — CVE-2026-5058 (aws-mcp-server)

इसी शोध अभियान से जुड़ी सह-सलाहकार: CVE-2026-52616, CVE-2026-52617।

लाइसेंस

MIT — LICENSE देखें।

टूल डाउनलोड करें
CVECVE-2026-52618
CWECWE-78 (OS कमांड में प्रयुक्त विशेष तत्वों का अनुचित न्यूट्रलाइज़ेशन)
पैकेज@webfer/mcp-ansible-drupal (npm)
प्रभावित2.0.0
स्थिर संस्करण2.0.3 (2026-06-01 को प्रकाशित)
CVSS v3.1AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 7.8 उच्च (stdio ट्रांसपोर्ट)। AV:N → 9.8 गंभीर यदि सर्वर नेटवर्क ट्रांसपोर्ट में लपेटा गया हो।
रिपोर्टकर्ताs1ko (github.com/s1ko, [email protected])
CVE आवंटन2026-07-13, MITRE CNA-LR
2026-06-012.0.0 के विरुद्ध भेद्यता की गतिशील रूप से पुष्टि की गई
2026-06-01shell: true हटाकर 2.0.3 npm पर प्रकाशित किया गया
2026-06-13दूसरे होस्ट पर पुनः मान्य किया गया
2026-07-13MITRE CNA-LR ने CVE-2026-52618 आवंटित किया, s1ko को खोजकर्ता के रूप में श्रेय दिया गया
2026-08-22यह लेख प्रकाशित किया गया