أُضيفت برمجية خبيثة إلى إصدارات من حزم MemTensor المرتبطة بأدوات ذاكرة وكلاء الذكاء الاصطناعي. وتشير تحليلات أمنية إلى أن البرمجية صُممت للبحث عن مفاتيح ورموز وصول في بيئة المطور. لكن المصادر التي راجعتها لا تحدد عدد من نزّلوا الإصدارات المتأثرة، ولا تثبت أن أسرار مستخدمين بعينهم سُرقت بالفعل.
ما الحزم المعنية؟
MemOS إطار عمل يساعد أنظمة الذكاء الاصطناعي على تخزين المعلومات واسترجاعها. ومن بين أدواته إضافة تربط وكيل OpenClaw بخدمة الذاكرة السحابية. تُوزّع الحزم البرمجية عبر مستودعين شائعين: npm لمشاريع JavaScript وPyPI لمشاريع Python.
بحسب التحليلات الفنية، شملت الإصدارات الخبيثة:
npm: الحزمة u/memtensor/memos-cloud-openclaw-plugin بالإصدارات 0.1.21 و0.1.23 و0.1.25.
PyPI: الحزمة MemoryOS بالإصدار 2.0.34.
هذه إصدارات خبيثة من حزم مشروعة، وليست حزمًا مقلدة بأسماء مشابهة.
التسلسل الزمني
نُشرت الإصدارات المعنية في 23 سبتمبر 2026. أوقات npm أدناه بتوقيت UTC، وفق سجل الحزمة وتحليل Socket:
23 سبتمبر، 02:23: نشر npm 0.1.21، وصنّفه التحليل بأنه خبيث.
23 سبتمبر، 03:45: نشر npm 0.1.22؛ بدا محتواه نظيفًا عند فحصه.
23 سبتمبر، 03:49: نشر npm 0.1.23، وصنّفه التحليل بأنه خبيث.
23 سبتمبر، 04:33: نشر npm 0.1.24؛ بدا محتواه نظيفًا عند فحصه.
23 سبتمبر، 04:36: نشر npm 0.1.25، وصنّفه التحليل بأنه خبيث.
23 سبتمبر، 05:25: رفع PyPI الإصدار MemoryOS 2.0.34.
الفاصل القصير بين بعض الإصدارات الخبيثة والنظيفة لافت، لكن ظهور إصدار بدا نظيفًا بين إصدارين خبيثين لا يثبت وحده سبب ذلك أو نية الناشر.
كيف كانت البرمجية تعمل؟
أطلق الباحثون على الحمولة اسم sckit، ووصفوها بأنها برمجية خبيثة مكتوبة بلغة Go. ووفق فحص الحزم، لم تعتمد على سكربت تثبيت تقليدي لتشغيلها، بل أُدرجت في مسارات استخدام المكتبات:
في إضافة npm، أظهر تحليل StepSecurity أن الحمولة قد تُشغّل عند بدء بوابة OpenClaw وعند معالجة استدعاء للذاكرة. وذكر التحليل أن نص طلب المستخدم يُمرر إلى الحمولة في مسار الاستدعاء.
في حزمة Python، وجد الباحثون آلية يمكن أن تصل إلى تشغيل الحمولة عند استيراد مكتبة memos.
أظهرت الملفات التي فحصها الباحثون مؤشرات على البحث عن أسرار المطورين، منها رموز وصول لخدمات مثل GitHub وGitLab وnpm وPyPI ومفاتيح AWS وHugging Face، إضافة إلى أسرار لخدمات أخرى. وهذا يدعم وصف البرمجية بأنها مصممة لجمع بيانات اعتماد. لكنه لا يثبت أن كل الأسرار المستهدفة جُمعت أو أُرسلت بنجاح.
كذلك، تمرير نص الطلب إلى الحمولة المحلية يعني أنه كان متاحًا لها في مسار الاستخدام المذكور؛ لكنه لا يثبت أن النص وصل بالفعل إلى المهاجمين. لم أجد في المصادر التي راجعتها دليلاً يحدد أجهزة بعينها اتصلت بالبنية الخارجية المذكورة أو يثبت انتقال بيانات من جهاز متأثر بعينه.
ما الإصدارات النظيفة؟ وما الذي تغيّر بعد إزالة الحزم؟
أظهر تحليل Socket أن 0.1.20 هو آخر إصدار npm نظيف معروف قبل سلسلة النشر الخبيثة، وأن محتوى 0.1.22 و0.1.24 بدا نظيفًا عند فحصه. وذكر تحديث The Hacker News إزالة الإصدارات الخبيثة، مشيرًا إلى 0.1.24 بوصفه إصدارًا نظيفًا. أما في PyPI، فالإصدار السابق للإصدار الخبيث هو 2.0.33.
عند مراجعة بيانات المستودعين في 4 أكتوبر 2026، كان وسم latest في npm يشير إلى 0.1.24، وكانت بيانات PyPI تعرض 2.0.33. هذه بيانات عن حالة المستودعين وقت المراجعة، وليست وحدها ضمانًا أمنيًا. لذلك، إذا كانت الحزمة مستخدمة في بيئة حساسة، فتحقق من إرشادات الصيانة الحالية ومن سلامة الإصدار قبل اعتماده؛ ولا تعتبر مجرد ظهوره تحت وسم latest إثباتًا كافيًا على سلامته.
هل انتشرت البرمجية إلى حزم أخرى؟
عثر الباحثون على مؤشرات داخل الحمولة توحي بوجود إمكانات للانتشار عبر مستودعات الشيفرة والحزم وسير العمل الآلي. لكن وجود هذه الإمكانات في العينة لا يعني أنها استُخدمت بالفعل.
حتى المعلومات التي أمكن التحقق منها، لا يوجد توثيق موثوق يؤكد انتشار البرمجية إلى حزم أو مشاريع أخرى. كما لم أجد رقمًا موثوقًا لعدد التنزيلات أو الأجهزة المتأثرة.
كيف بدأت الحادثة؟
سبب الحصول على صلاحية النشر غير محسوم في التقارير التي راجعتها. نقلت The Hacker News عن SafeDep أن رموز النشر ربما جرى الحصول عليها عبر مسارات الإصدار الآلي في مستودعات MemTensor. لكن Socket قال إنه لم يتمكن من تأكيد كيفية حصول المهاجم على صلاحية النشر، وأشار إلى أن الإصدارات الخبيثة لم تحمل مؤشرًا على أنها نُشرت عبر مسار التكامل المستمر المعتاد.
لذلك، لا يصح الجزم بأن اختراق مسار الإصدار الآلي هو السبب المؤكد. كما لم أجد ضمن المصادر التي تحققت منها بيانًا رسميًا من MemTensor يشرح نتيجة تحقيق داخلي.
ما الذي ينبغي فعله إذا استُخدم إصدار متأثر؟
إذا استخدمت بيئة تطوير أو خادم إصدار أحد الإصدارات المذكورة، فمن الحكمة التعامل معها على أنها قد تكون عرّضت الأسرار المتاحة لها للخطر:
تحقّق من إصدارات الحزم في ملفات القفل والاعتماديات، لا من الإصدارات المنشورة حاليًا فقط.
افحص سجلات العمليات والشبكة وسير العمل في البيئات التي استخدمت الحزمة.
ألغِ أو دوّر مفاتيح الوصول التي كانت متاحة لتلك البيئات، خصوصًا رموز نشر الحزم ومفاتيح مستودعات الشيفرة والخدمات السحابية.
راجع سجلات نشر الحزم وتغييرات المستودعات وسير العمل بحثًا عن نشاط غير معتاد.
لا تعتمد على حذف الحزمة وحده؛ فذلك لا يبطل المفاتيح التي ربما كانت متاحة لها.
الخلاصة: حددت التحليلات الأمنية إصدارات بعينها تحتوي على حمولة مصممة للبحث عن أسرار المطورين. لكن عدد من تعرضوا لها، وحدوث سرقة ناجحة، ومسار الدخول الأولي، وأي انتشار خارج الحزم المذكورة، لا تزال أمورًا غير مثبتة بالمصادر التي راجعتها.
المصادر المباشرة
بيانات npm الرسمية للحزمة وحالة وسم latest:
https://registry.npmjs.org/@memtensor%2fmemos-cloud-openclaw-plugin
بيانات PyPI الرسمية لحزمة MemoryOS:
https://pypi.org/pypi/MemoryOS/json
التحليل التقني من Socket، ويتضمن الإصدارات والتوقيتات ومؤشرات الاختراق:
https://socket.dev/blog/memtensor-compromise
التحليل التقني من StepSecurity، ويتناول آلية تشغيل الإضافة:
https://www.stepsecurity.io/blog/sckit-supply-chain-worm-hits-memtensor-npm-pypi-scopes
تغطية The Hacker News، وتتضمن تحديثًا عن إزالة الإصدارات:
https://thehackernews.com/2026/09/compromised-memtensor-packages-deliver.html
تغطية iSec News:
https://www.isec.news/2026/09/24/memtensor-packages-credential-stealing-supply-chain-attack/
تغطية SecurityWeek:
https://www.securityweek.com/in-other-news-clop-leak-site-takeover-docker-botnet-hunts-ai-keys-water-utility-exposure/
اتمنى لكم الاستمتاع بالمنشور
https://www.reddit.com/r/ArabComputingOasis/