حادثة · خادم MCP خبيث
الباب الخلفي في postmark-mcp: كيف يبدو خادم MCP خبيث على Mac ولماذا لم يكن Kilobat ليراه
في سبتمبر 2025 أضافت حزمة npm غير رسمية تتيح لمساعدي الذكاء الاصطناعي إرسال البريد عبر Postmark سطرًا واحدًا إلى شيفرتها: بدءًا من الإصدار 1.0.16، حمل كل بريد ترسله نسخة مخفية إلى عنوان على نطاق الناشر نفسه. وتفيد هذه الحالة تحديدًا لأن Mac لم يتصل قط بأي شيء غير معتاد.
باختصار
- الحماية: لم يكن ليساعد
لم يتصل Mac إلا بواجهة Postmark API. وسُلّمت النسخ عبر خوادم بريد Postmark كبريد عادي.
- حارس الوكلاء: لم يكن ليساعد
لا موقع لصق أو نفق أو عنوان مباشر أو رفع كبير إلى مضيف جديد. كان إرسال البريد عبر واجهة بريد هو الغرض من الأداة.
- سجل شبكة الوكلاء: محدودة
كان سيعرض خادم MCP تحت الوكيل الذي بدأه، متصلًا بـ api.postmarkapp.com، وهذا متوقع. المستلم الإضافي داخل الطلب المشفر.
ما حدث
يصف باحثو Koi Security الذين اكتشفوه حزمة npm باسم postmark-mcp، بُنيت من شيفرة مستودع بالاسم نفسه تحتفظ به ActiveCampaign مالكة Postmark ونشرها شخص آخر. كانت خادم MCP: برنامجًا صغيرًا يبدأه مساعد ذكاء اصطناعي مثل Claude Desktop أو Cursor أو Claude Code ليستدعي أدواته، وهنا sendEmail وsendEmailWithTemplate.
عملت الإصدارات الخمسة عشر الأولى كما أُعلن عنها. أضاف الإصدار 1.0.16 حقل Bcc بعنوان ثابت على نطاق giftshop[.]club إلى كل رسالة ترسلها الأداة، فكان يُنسخ كل ما يرسله المساعد من إعادة تعيين كلمات المرور وفواتير وغيرها. قدرت Koi التنزيلات بنحو 1,500 أسبوعيًا، وقدرت نسخ آلاف الرسائل يوميًا. وعندما اتصلت Koi بالناشر حُذفت الحزمة من npm، وهو ما لا يؤثر في النسخ المثبتة بالفعل.
قالت Postmark إن الحزمة ليست لها وإنها لم تنشر خادم MCP على npm وإن واجهتها وخدماتها لم تتأثر. ونشرت Snyk شيفرة الحزمة والفرق المكون من سطر واحد بين الإصدار السليم 1.0.15 والإصدارات اللاحقة.
التسلسل الزمني
- 15 سبتمبر 2025
نُشر
postmark-mcp1.0.0 على npm (وفق التسلسل الزمني لـ Snyk). - 15–17 سبتمبر 2025
تلت ذلك سلسلة إصدارات؛ أضاف الإصدار 1.0.16 النسخة المخفية، وكان 1.0.18 آخر إصدار مذكور.
- أواخر سبتمبر 2025
رصد محرك تقييم المخاطر لدى Koi التغير في السلوك؛ ونشرت Koi نتائجها واختفت الحزمة من npm.
- 25 سبتمبر 2025
قالت Postmark إن الحزمة لا تخصها ونصحت بتغيير بيانات الاعتماد المُرسلة بالبريد؛ ونشرت Snyk تحليلها ومؤشرات الاختراق.
كيف بدا على الشبكة
على Mac، خادم MCP هو عملية node يبدأها المساعد، غالبًا عبر npx. ولإرسال بريد، استدعى واجهة Postmark على api.postmarkapp.com عبر HTTPS باستخدام مكتبة Node الخاصة بـ Postmark، تمامًا مثل الإصدارات السليمة. وكان عنوان النسخة المخفية حقلًا إضافيًا داخل الطلب المشفر، ولم يتغير حجم الرسالة إلا بالكاد.
ثم سلكت النسخة مسار البريد المعتاد: سلّمتها خوادم Postmark إلى خادم البريد الخاص بـ giftshop[.]club. لم يتصل Mac بأي جهة جديدة، ولم يتغير نمط حركة البيانات بين الإصدارين 1.0.15 و1.0.16.
المؤشرات
كما توثقها المصادر. النطاقات نصوص وليست روابط، وقد عُطلت صيغتها ([.]) حيث فعل المصدر ذلك. معظم هذه البنية اختفى منذ زمن: تساعد المؤشرات في فحص السجلات والملفات والحسابات القديمة، لا حظر حملات اليوم.
| المؤشر | النوع | أين يظهر | ملاحظة |
|---|---|---|---|
postmark-mcp 1.0.16 and later | حزمة npm | إعدادات عميل MCP وذاكرة npm المؤقتة | ليست من Postmark. أُزيلت من npm في سبتمبر 2025، لكن النسخ المثبتة تواصل العمل. |
phan@giftshop[.]club | عنوان البريد الإلكتروني | سجل رسائل Postmark | مستلم النسخة المخفية الثابت. لا يظهر أبدًا في حركة شبكة Mac. |
giftshop[.]club | النطاق | سجلات البريد | تقترح Snyk حظره عند الخروج أثناء التحقق؛ فهو يستقبل البريد، لا الاتصالات من Mac. |
api.postmarkapp.com | المضيف (مشروع) | جهاز Mac | المضيف الوحيد الذي اتصل به خادم MCP، كما في الإصدارات السليمة. |
ما كان Kilobat سيعرضه أو يحظره
- سجل شبكة الوكيل. خوادم MCP التي يبدأها الوكيل جزء من شجرة عملياته، لذا ستعرض الجلسة
nodeوخادم MCP متصلين بـ api.postmarkapp.com مع عدد البايتات المرسلة. وهذا ما يُتوقع من أداة بريد. ولا تُعلَّم الحالة بأنها المرة الأولى إلا في أول يوم يستخدم فيه أي وكيل على Mac خدمة Postmark، ولا تُعلَّم للمستلم المخفي أبدًا. - الحماية. لا شيء يستدعي الحظر. Postmark خدمة مشروعة، وعندما تحققنا في 1 نوفمبر 2026 لم يكن giftshop[.]club في قوائم تهديدات Kilobat، وهو أمر لا يؤثر هنا: فـ Mac لا يتصل به أصلًا.
- حماية الوكيل. لا تنطبق أي من قواعدها. يوقف حد الرفع إرسال أكثر من 10 MB إلى مضيف لم يستخدمه أي وكيل من قبل، وطلبات البريد صغيرة.
أين لم يكن Kilobat ليساعد
- حدثت السرقة داخل طلب مسموح لخدمة مسموحة. لا تستطيع أي أداة تراقب الاتصالات، على Mac أو الشبكة، رؤية حقل داخل HTTPS مشفر.
- سلّمت خوادم بريد Postmark النسخ من شبكة Postmark، لا من Mac.
- نفّذ خادم MCP ما طلبه المساعد بالضبط، وأمرًا إضافيًا. ولم يكن لدى المساعد وسيلة لرؤية المستلم الإضافي أيضًا.
- لا يقرأ Kilobat ما ترسله التطبيقات أصلًا، لذا لا يستطيع التمييز بين بريد عادي وآخر أُرسلت منه نسخة.
تحقق من Mac الآن
اعرض خوادم MCP المضبوط تشغيلها في Claude Code.
claude mcp listابحث عن الحزمة في إعدادات MCP للمساعدين الآخرين.
grep -n "postmark-mcp" ~/Library/Application\ Support/Claude/claude_desktop_config.json ~/.cursor/mcp.json ~/.codeium/windsurf/mcp_config.json 2>/dev/nullابحث عن النسخ التي ثبّتها npm على مستوى النظام أو خزّنها مؤقتًا لـ
npx.npm ls -g postmark-mcp; find ~/.npm/_npx -maxdepth 3 -type d -name "postmark-mcp"إن استخدمتها، فأزلها من كل إعداد، وغيّر رمز خادم Postmark الذي كان لديها، وابحث في نشاط ذلك الخادم في Postmark عن رسائل أُرسلت بنسخة مخفية إلى giftshop[.]club.
اعتبر كل ما أُرسل عبرها مقروءًا لشخص آخر: غيّر كلمات المرور وألغِ الروابط أو الرموز التي أُرسلت بالبريد. استخدم خوادم MCP التي تربط إليها الخدمة من وثائقها الرسمية.
استخدم Kilobat لرؤية المضيفين الذين يصل إليهم كل خادم MCP. يستحق الخادم الذي يتصل بمضيفين لا علاقة لهم بمهمته المراجعة، وإن لم يفعل هذا الخادم ذلك.
kilobat agent-log --all
الأسئلة
هل كان Kilobat سيكشف هذا؟
لا. كل اتصال كان من المفترض أن تجريه الأداة. هذا النوع من الهجمات لا تكشفه إلا مراجعة الشفرة أو فحص سمعة الحزمة أو سجلات خدمة البريد نفسها.
هل خوادم MCP أخطر من حزم npm الأخرى؟
تعمل بالصلاحيات التي تمنحها للمساعد، ويستدعيها المساعد مرات عديدة دون أن يراجع شخص كل استدعاء. وأشارت Koi إلى أن تغيير سطر واحد كان كافيًا.
المصادر
- Koi Security: أول MCP خبيث مرصود فعليًا، الباب الخلفي في Postmark الذي يسرق رسائلك (نسخة مؤرشفة)
- Postmark: معلومات بشأن حزمة «postmark-mcp» الخبيثة
- Snyk: خادم MCP خبيث على npm؛ حزمة postmark-mcp تجمع رسائل البريد
- ActiveCampaign/postmark-mcp: مستودع خادم MCP الخاص بـ Postmark
تم التحقق في 1 نوفمبر 2026.
اعرف ما تتصل به وكلاؤك وتطبيقاتك
Kilobat تطبيق لشريط قوائم Mac يحدد التطبيق والعملية والوكيل وراء كل اتصال، ويبعدها عن المضيفين المعروفين بسوئهم، ويسجل الوجهات التي بلغتها كل جلسة وكيل.
brew install seifip/kilobat/kilobat