
🛡️ ماسح بأمر واحد لـ CVE-2026-45321 — هجوم سلسلة التوريد لـ TanStack npm
ماسح هجمات سلسلة التوريد بأمر واحد لـ CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx
يكتشف دودة "Mini Shai-Hulud" التي اخترقت 42 حزمة npm من @tanstack/* (84 إصدارًا ضارًا) في 11 مايو 2026.
# سطر واحد — امسح مشروعك
curl -fsSL https://raw.githubusercontent.com/Caixa-git/tanstack-shield/main/tanstack-shield.sh | bash
# امسح مجلدًا محددًا
curl -fsSL https://raw.githubusercontent.com/Caixa-git/tanstack-shield/main/tanstack-shield.sh | bash -s -- /path/to/project
# تنزيل واستخدام مباشر
git clone https://github.com/Caixa-git/tanstack-shield.git
cd tanstack-shield
python3 tanstack-shield.py .
في 11 مايو 2026، قام أحد المهاجمين بتسلسل ثلاث فئات من الثغرات المعروفة — سوء تكوين pull_request_target (طلب السحب الشرير)، وتسميم ذاكرة التخزين المؤقت لإجراءات GitHub، واستخراج ذاكرة رمز OIDC — لنشر 84 إصدارًا ضارًا عبر 42 حزمة من @tanstack/* تحت هوية npm الموثوقة لـ TanStack.
قام البرنامج الضار بجمع بيانات الاعتماد (رموز GitHub، رموز npm، مفاتيح SSH، بيانات AWS/GCP/Kubernetes/Vault)، ونقلها عبر تطبيق Session، وانتشر ذاتيًا إلى حزم أخرى يديرها الضحية.
استهدفت نفس الحملة أيضًا Mistral AI (npm + PyPI)، وUiPath (65 حزمة)، وOpenSearch (1.3 مليون تنزيل أسبوعي من npm)، وأكثر من 170 حزمة npm بالإضافة إلى حزمتي PyPI.
ماسح للقراءة فقط يتحقق من مشروعك من أجل:
ملاحظة: يتم فحص ملفات القفل فقط في جذر المشروع. إذا كنت تستخدم مستودعًا متعدد الحزم (monorepo) مع ملفات قفل في مجلدات فرعية (مثل packages/web/package-lock.json)، قم بتشغيل الماسح داخل كل مساحة عمل، أو من جذر المستودع حيث يوجد ملف القفل الأعلى مستوى.
@tanstack/* في package.json. تحقق من ملف القفل الخاص بك.⚠️ هام جدًا: هذا البرنامج الضار هو سارق لبيانات الاعتماد، وليس فيروسًا يدمر الكمبيوتر. إذا تم اكتشاف 🔴:
curl -fsSL https://raw.githubusercontent.com/Caixa-git/tanstack-shield/main/tanstack-shield.sh | bash -s -- --json
هذه الأداة للقراءة فقط. لا تقم أبدًا بإنشاء أو تعديل أو حذف ملفات على نظامك.
MIT
| ما | الملفات | النتيجة |
|---|
| ملف قفل npm | package-lock.json, npm-shrinkwrap.json | 🔴 تطابق إصدار ضار دقيق |
| ملف قفل pnpm | pnpm-lock.yaml | 🔴 تطابق إصدار ضار دقيق |
| ملف قفل yarn | yarn.lock | 🔴 تطابق إصدار ضار دقيق |
| تبعيات البيان | package.json (الجذر + مساحات العمل) | 🟡 تحذير وجود حزمة |
| بصمة البرامج الضارة | @tanstack/setup في optionalDependencies | 🔴 تأكيد وجود برامج ضارة |
| تبعيات git مشبوهة | github:tanstack/router#<commit> | 🔴 تأكيد وجود برامج ضارة |
| نصوص دورة الحياة | prepare مع bun + router_init | 🔴 تأكيد وجود برامج ضارة |
| node_modules | node_modules/@tanstack/* (البديل) | 🔴 تطابق إصدار دقيق |