Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-52618 — يوثّق CVE-2026-52618 مع PoC لحقن أوامر نظام التشغيل في @webfer/mcp-ansible-drupal عبر executeDeployment extraVars، إلى جانب إرشادات الكشف والإجراءات التخفيفية. | Kitploit
أدوات/GitHubGitHub/s1ko/cve-2026-52618
تحليل الثغرات الأمنيةالاستغلالأمن الذكاء الاصطناعي
GitHubs1ko/cve-2026-52618

CVE-2026-52618

يوثّق CVE-2026-52618 مع PoC لحقن أوامر نظام التشغيل في @webfer/mcp-ansible-drupal عبر executeDeployment extraVars، إلى جانب إرشادات الكشف والإجراءات التخفيفية.

عرض المستودع
24منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-52618 — @webfer/mcp-ansible-drupal: حقن أوامر نظام التشغيل عبر متغيرات executeDeployment الإضافية

spawn(cmd[0], cmd.slice(1), { shell: true }) يعيد دمج مصفوفة الوسائط في سلسلة واحدة /bin/sh -c دون تهريب، لذا فإن أي حرف خاص بالصدفة (shell metacharacter) في قيمة extraVars تُمرَّر إلى أداة MCP المسماة executeDeployment يُنفَّذ على المضيف الذي يشغّل الخادم.

CVECVE-2026-52618
CWECWE-78 (التحييد غير السليم للعناصر الخاصة المستخدمة في أمر نظام التشغيل)
الحزمة@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 High (نقل stdio). AV:N → 9.8 Critical إذا كان الخادم مغلَّفًا بنقل شبكي.
أبلغ عنهs1ko (github.com/s1ko، [email protected])
تاريخ تعيين CVE2026-07-13، MITRE CNA-LR

تم إصلاح هذه المشكلة. قم بالترقية إلى 2.0.3 أو أحدث.

نموذج التهديد

وسائط أدوات MCP تتأثر بالمهاجم. فهي تُنتَج بواسطة LLM من المحتوى الذي تعالجه الوكالة — المستندات وصفحات الويب ومخرجات الأدوات — لذا فإن حقن الأوامر غير المباشر (indirect prompt injection) يمنح المهاجم السيطرة على القيم التي يتلقاها معالج الأداة. أي معالج يمرّر أيًّا من تلك القيم إلى صدفة (shell) يحوّل تلك السيطرة إلى تنفيذ شيفرة على المضيف الذي يشغّل خادم MCP. هذا هو النموذج نفسه الخاص بالحالة السابقة aws-mcp-server / CVE-2026-5058.

النتيجة هي أن "المتصل هو LLM موثوق" ليس إجراءً تخفيفيًا. وسائط الأدوات هي مدخلات غير موثوقة.

التنفيذ

src/helpers/runAnsible.ts في 2.0.0 بنى مصفوفة وسائط ثم شغّلها مع تمكين الصدفة (shell):

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

مع shell: true، لا ينفّذ Node العنصر ansibleCmd[0] مع العناصر المتبقية كـ argv. بل يدمج المصفوفة بأكملها في سلسلة واحدة ويسلّمها إلى /bin/sh -c، دون تطبيق أي اقتباس أو تهريب على العناصر. لذلك فإن أي عنصر يحمل ; أو && أو | أو backticks أو $() يخرج عن الأمر المقصود.

المسار القابل للوصول هو أداة MCP ‏executeDeployment (src/tools/executeDeployment.ts)، التي تمرّر extraVars المقدّمة من المستدعي إلى المصفوفة بصيغة --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 الدالة runAnsible مباشرةً بقيمة extraVars مصممة خصيصًا ويتحقق من وجود ملف العلامة. لا يلزم تثبيت 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 غير ضارة. شغّله فقط ضد البنية التحتية المصرّح لك باختبارها.

الكشف

  • أي قيمة --extra-vars تصل إلى ansible-playbook وتحتوي على ; أو && أو || أو | أو backtick أو $(. قيم متغيرات Ansible المشروعة لا تحتوي على هذه العناصر عمليًا أبدًا.
  • عملية sh -c يحتوي سطر أوامرها على ansible-playbook و أمر ثانٍ بعد فاصل — إشارة على مستوى شجرة العمليات (auditd، eBPF، Falco، EDR) لا تعتمد على تسجيل التطبيق.
  • عمليات فرعية غير متوقعة لعملية خادم MCP. ansible-playbook وgit وansible-vault متوقعة؛ أما shell أو مفسّر أو عميل شبكة فليس كذلك.
  • سجلات استدعاء أدوات MCP حيث تحتوي وسائط executeDeployment على محارف shell خاصة. سجّل وسائط الأدوات — معظم عمليات نشر 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 أبدًا عندما تكون مصفوفة الوسائط متاحة بالفعل. صيغة المصفوفة موجودة تحديدًا لتجنّب shell.
  • لا تبنِ أمرًا عبر إقحام نصي لوسيط أداة. استخدم execFile/spawn مع متجه وسائط صريح.
  • تحقّق من المحتوى، لا من النوع فقط. z.string() في Zod تثبت أن القيمة نصية ولا شيء عن محتواها. استخدم قائمة سماح حيث تكون مجموعة القيم معروفة؛ وارفض محارف shell الخاصة حيث لا تكون كذلك.
  • شغّل خادم MCP كمستخدم غير مميّز بأضيق نطاق وصول إلى نظام الملفات والشبكة تحتاجه الأداة فعليًا.

NIST SP 800-53r5 SI-10؛ OWASP ASVS v4 §5.3.8؛ تخفيفات CWE-78 M1 وM2.

الجدول الزمني

التاريخالحدث
2026-06-01التحقق الديناميكي من الثغرة ضد 2.0.0
2026-06-01نشر 2.0.3 على npm مع إزالة shell: true
2026-06-13إعادة التحقق على مضيف ثانٍ
2026-07-13يخصّص MITRE CNA-LR المعرّف CVE-2026-52618، مع نسبة الاكتشاف إلى s1ko
2026-08-22نشر هذا التقرير

المراجع

  • حزمة 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.

تنزيل الأداة