Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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 का दस्तावेज़ीकरण करता है, साथ ही पहचान मार्गदर्शन और शमन उपाय भी प्रदान करता है।

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

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

सभी देखें →

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

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

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

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

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 मान में मौजूद कोई भी शेल मेटाकैरेक्टर सर्वर चलाने वाले होस्ट पर निष्पादित हो जाता है।

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 = 8.4 उच्च (stdio ट्रांसपोर्ट)। यदि सर्वर को नेटवर्क ट्रांसपोर्ट में लपेटा जाए तो AV:N → 9.8 क्रिटिकल।
रिपोर्ट करने वालाs1ko (github.com/s1ko, [email protected])
CVE आवंटित2026-07-13, MITRE CNA-LR

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

खतरा मॉडल

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

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

निष्पादन

2.0.0 में src/helpers/runAnsible.ts एक आर्ग्युमेंट ऐरे बनाता था और फिर उसे शेल सक्षम करके चलाता था:

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

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

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

/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 स्ट्रिंग में चलता है, चाहे अग्रणी बाइनरी रिज़ॉल्व हो या न हो।

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

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

{"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 मार्कर के साथ पुनः मान्य किया गया। इसे केवल उसी अवसंरचना के विरुद्ध चलाएँ जिसका परीक्षण करने के लिए आप अधिकृत हैं।

पहचान (Detection)

  • ansible-playbook तक पहुँचने वाला कोई भी --extra-vars मान जिसमें ;, &&, ||, |, बैकटिक या $( हो। वैध 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.

शमन (Mitigation)

@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 सर्वर को एक अपरिविलेज्ड उपयोगकर्ता के रूप में चलाएँ, जिसके पास सबसे संकीर्ण फ़ाइलसिस्टम और नेटवर्क पहुँच हो जो टूल को वास्तव में आवश्यक हो।

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

समयरेखा (Timeline)

तिथिघटना
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यह लेख प्रकाशित

संदर्भ (References)

  • 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.

लाइसेंस (License)

MIT — देखें LICENSE।

टूल डाउनलोड करें