فيروس "Mini Shai-Hulud" ديال TeamPCP كيخترق كثر من 170 حزمة فـ npm و PyPI ببرنامج خطير كيسرق بيانات الاعتماد
Mini Shai-Hulud Worm Compromises TanStack, Mistral AI, Guardrails AI & More Packages
فيروس "Mini Shai-Hulud" ديال TeamPCP كيخترق كثر من 170 حزمة فـ npm و PyPI ببرنامج خطير كيسرق بيانات الاعتماد
خلاصة: فاعل التهديد المعروف بـ TeamPCP تمكن من اختراق كثر من 170 حزمة (package) فمنصات npm و PyPI، من بينها TanStack (42 حزمة بـ 84 نسخة)، و Mistral AI، و Guardrails AI، و UiPath، و OpenSearch. المهاجمين استعملو فيروس (worm) كيسرق بيانات الاعتماد (credentials) من مزودي الخدمات السحابية، وأنظمة CI/CD، والمحافظ ديال العملات المشفرة. هاد البرمجية الخبيثة كتزرع راسها فمحررات الأكواد (code editors)، وكتسرب البيانات من قنوات متعددة، وفيها واحد الروتين مدمر (wiper) كيتفعل يلا جرب شي مطور يلغي التوكنز ديال npm لي تسرقو. هاد الاختراق ديال TanStack اللي عندو الثغرة (CVE-2026-45321 بتنقيط CVSS 9.6) كيتعتبر أول فيروس موثق فـ npm قادر يصدر إثباتات مصدر صحيحة وموقعة ديال SLSA Build Level 3.
شنو واقع
فاعل التهديد TeamPCP أطلق واحد الحملة ضد سلسلة التزويد سماوها "Mini Shai-Hulud" كتستهدف بزاف ديال الأنظمة المفتوحة المصدر. الهجمة كتبدا باختراق مسارات العمل (workflow) ديال المطورين والصلاحيات ديال المستودعات، وهادشي خلى المهاجمين يحقنو كود خبيث فعمليات بناء الحزم وينشروها باستعمال بنية CI/CD شرعية.
بالنسبة للحزم ديال TanStack، الهجمة استغلات GitHub Actions عن طريق دمج مجموعة ديال التقنيات: مشغل "pull_request_target"، تسميم الكاش (cache poisoning) ديال GitHub Actions، واستخراج توكنز OIDC من الذاكرة خلال التشغيل فبروسيس ديال runner. المهاجمين حطو حمولة (payload) خبيثة فـ fork على GitHub باستعمال orphaned commit، ومن بعد سيطرو على الـ workflow الشرعي ديال "TanStack/router" باش ينشرو النسخ المخترقة. المشكل الكبير هو أن إعدادات الـ trusted publisher ديال OIDC فـ TanStack كانت عاطية الثقة على مستوى المستودع (repository level) كامل بلاصت ما تحدد فروع (branches) وملفات workflow محمية، وهادشي اللي سمح لداك الكوميت المعزول يطلب توكن صحيح وقصير الأمد للنشر فـ npm.
الحزم المخترقة ديال TanStack جايبة معاها إثباتات مصدر صحيحة ديال SLSA Build Level 3، وهادشي كيجعلها أول فيروس فـ npm قادر ينتج حزم خبيثة موثقة وموقعة بشكل صحيح. الفيروس من بعد كينتشر بوحدو؛ كيقلب على توكنز ديال npm صالحة للنشر وتكون فيها خاصية bypass_2fa مفعلة، ومن بعد كيدير جرد لجميع الحزم اللي نشرها نفس الشخص، وكيحول توكنز OIDC ديال GitHub لتوكنز خاصة بكل حزمة باش يصيفط تجاوز للمصادقة العادية.
الكود الخبيث كيبان بأشكال مختلفة على حساب المنصة. فالحزم ديال npm، كاين واحد الملف JavaScript مشفر سميتو "router_init.js" كيحلل بيئة التشغيل وكيطلق برنامج سرقة بيانات الاعتماد اللي كيستهدف مزودي الكلاود، محافظ العملات المشفرة، أدوات الذكاء الاصطناعي، تطبيقات المراسلة، وأنظمة CI بحال GitHub Actions. المجموعات ديال TanStack كتخدم بـ lifecycle hook دالتحضير (prepare) كيتبدّا عن طريق بيئة التشغيل Bun. أما فحالة Mistral AI، استعملو طريقة قديمة شوية؛ بدلو ملف package.json بـ hook ديال preinstall لي كيطلب "node setup.mjs" باش يتيليشارجي Bun وينفذ نفس البرمجية الخبيثة.
فحزم PyPI، الطريقة مختلفة: الحزمة ديال mistralai كتهبط برنامج سرقة بيانات الاعتماد من سيرفر خارجي (83.142.209[.]194)، وفيه لوجيك كينقز البيئات اللي كتخدم بالروسية، وزايد فيه كود مدمر محدود جغرافيا كيخدم باحتمال 1 من 6 باش ينفذ "rm -rf /" يلا بانت ليه الأنظمة فإسرائيل أو إيران. أما الحزمة guardrails-ai@0.10.1 فكتنفذ الكود الخبيث ملي كديرليها import، وكتأكد واش خدامة فأنظمة Linux، عاد كتهبط ملف Python من "https://git-tanstack.com/transformers.pyz" وكتكتبو فـ /tmp/transformers.pyz.
عملية التسريب كتدار على تلاتة دالقنوات بديلة: الدومين "filev2.getsession[.]org" لي كيخدم ببنية Session Protocol (تختار باش يهرب من حظر الشركات)، ومستودعات GitHub باسم "claude@users.noreply.github.com" عن طريق GitHub GraphQL API باستعمال توكنز مسروقة، ودومين فيه خطأ مطبعي مقصود "git-tanstack[.]com". البرمجية الخبيثة كتنستالي خدمة gh-token-monitor باش تبقى تسرب توكنز ديال GitHub ديما، وكتزيد workflows خبيثة فـ GitHub Actions باش تحول أسرار المستودع لصيغة JSON وترفعهم لـ "api.masscan[.]cloud".
التثبيت الدائم (persistence) كيوقع عن طريق hooks فـ Claude Code و Microsoft Visual Studio Code لي كتبقى مستمرة واخا تطفى وتعاود تشعل البيسي، وكتعاود تنفذ سارق البيانات كل مرة كيتحل فيها نظام التطوير (IDE).
الخطير هو وجود ميكانيزم مدمر (dead-man's switch) كيسول "api.github.com/user" كل 60 ثانية باش يشوف واش تم إبطال توكن npm. يلا تم الإبطال (revoked)، كيطبع ميساج "IfYouRevokeThisTokenItWillWipeTheComputerOfTheOwner" ومن بعد كينفذ "rm -rf ~/" فالبيسي المخترق، لي كيخدم كـ wiper malware.
على حساب البيانات ديال OX Security، هاد الحملة قاست كثر من 170 حزمة فهاد الجوج منصات، مع كثر من 518 مليون تحميل تراكمي. تكرياو على الأقل 400 مستودع تحت سيطرة المهاجمين كيحتويو على بيانات اعتماد مسروقة، وكلهوم فيهم عبارة "Shai-Hulud: Here We Go Again".
علاش هادشي مهم
هاد الحملة كتمثل تصعيد كبير وتعقيد فالهجمات على سلسلة التزويد. بالنسبة للمطورين وفرق DevOps، العواقب خطيرة بزاف:
استغلال النشر الموثوق: المهاجمين ردو توكنز OIDC ديال GitHub Actions وإعدادات النشر الموثوقة لأسلحة، وهادشي حول بنية CI/CD شرعية لوسيلة ديال التوزيع. قدرة الفيروس على الانتشار راسو عن طريق استغلال توكنز npm لي فيها تجاوز 2FA مفعل كيعني أن حزمة وحدة مخترقة تقدر تعادي نظام الشركة كاملة.
التثبيت الدائم والمراقبة: الكود لي تزرع فـ IDEs (بحال Claude Code و VS Code) كيعني أنه فكل مرة كيتحلو فيها، كيتعاود يتنفذ البرنامج الخبيث. بيانات الاعتماد لي تسرقات كتشمل توكنز ديال GitHub و npm، حسابات الكلاود، والعملات المشفرة، هادشي كيعطي للمهاجمين أكسي مباشر لبيئات النشر وللأصول المالية فدقة وحدة.
قدرات التدمير: الروتين المدمر (wiper) ماشي وسيلة حماية ولكن وسيلة للترهيب. المطورين لي غيلغيو التوكنز كيغامرو بمسح الملفات الشخصية ديالهم. هادشي كيفرض عليهم يختارو بين يخليو المهاجمين يكملو التسريب أو يضحيو بالنظام ديالهم، وهادشي كيصعب بزاف مهمة الاستجابة للحوادث.
التملص من الاكتشاف: إثباتات SLSA لي موقعة بشكل صحيح كتعني أن هاد الحزم الخبيثة غتفوت فحوصات السلامة للأنظمة الأوتوماتيكية براحة. الأدوات ديال الشركات اللي كتثيق فالحزم الموقعة مغاديش تطلع ليها إنذارات فهاد النسخ المخترقة. زيادة على هادشي، استعمال بنية تحتية لامركزية بحال Session Protocol


