كود خبيث في حزم MemOS لذاكرة الـ agents على npm وPyPI يقرأ نص الـ prompt ويسرق المفاتيح
نشرت شركة Socket المتخصصة في أمن الحزم تقريرًا عن اختراق حزم MemOS، وهي طبقة ذاكرة للـ agents يحظى مستودعها الأساسي على GitHub بنحو 11,500 نجمة و1,100 fork. ورُفعت الإصدارات المصابة يوم 23 سبتمبر 2026.
وعلى npm، أصيبت حزمة @memtensor/memos-cloud-openclaw-plugin في الإصدارات 0.1.21 و0.1.23 و0.1.25، وكان الأخير يحمل وسم latest، وآخر إصدار سليم هو 0.1.20. وعلى PyPI، أصيب الإصدار 2.0.34 من حزمة MemoryOS، وآخر إصدار سليم هو 2.0.33.
ويحتوي كل إصدار خبيث على ملف تنفيذي مكتوب بلغة Go اسمه sckit، بنسخ لأنظمة Linux وmacOS وWindows. والجديد في هذه الحالة ليس سرقة المفاتيح، بل موضع التشغيل. فنسخة npm لا تشغّل الملف عند بدء الـ OpenClaw gateway فقط، بل مع كل استدعاء للذاكرة أيضًا، وتمرّر إليه نص الـ prompt. أي أن ما يكتبه المستخدم للنموذج يمر على برنامج آخر قبل أن يصل. أما نسخة PyPI فتشغّل الملف عند استيراد الوحدة memos.
ويبحث البرنامج في مجلد المستخدم عن بيانات اعتماد npm وPyPI وGitHub وGitLab وAWS وVault وSSH، ويرسلها إلى خوادم تحكم تحت النطاق skyleen[.]fr. وتقول Socket إن نصوصًا داخل البرنامج توحي بأنه قد يستخدم التوكنز المسروقة لنشر حزم جديدة، أي أن ينشر نفسه بنفسه كالدودة، وهذا احتمال تطرحه الشركة لا سلوك مؤكد.
وتوصي Socket بأن يُعدّ أي جهاز شغّل هذه الإصدارات مخترقًا بالكامل، بما في ذلك أجهزة المطورين ومشغلات الـ CI والحاويات، وأن يُستبدل كل سر كان متاحًا في بيئته. ويعني مرور الـ prompt على البرنامج أن ما أُرسل للنموذج خلال تلك الفترة يُعدّ مكشوفًا أيضًا.
ولم تقس Socket عدد التحميلات الفعلي، فحجم الانتشار غير معروف، ورقم النجوم يصف حجم المشروع لا عدد المتأثرين. لكن الدرس يتجاوز هذه المكتبة: كل حزمة ذاكرة أو وسيط يقرأ الـ prompt قبل النموذج يقف في موضع الثقة نفسه، وعدد هذه الحزم في الـ agent الواحد يحدد عدد الأماكن التي قد يتسرب منها ما يكتبه المستخدم.