
يكتشف CVE-2026-45321 (اختراق سلسلة التوريد TanStack) وأثر دودة Mini Shai-Hulud. يفحص node_modules، ملفات القفل، خطافات الاستمرارية (Claude Code, VS Code, systemd, LaunchAgent)، مهام سير عمل GitHub، تاريخ git، نطاقات C2، وإعدادات أدوات الذكاء الاصطناعي.
⚠️ تنبيه: تم بناء هذه الأداة لاستخدامي الشخصي. جميع المؤشرات مستمدة من مصادر الاستشارات التالية:
في حال ظهور مؤشرات IOCs جديدة أو متغيرات حمولة أو بنية تحتية للمهاجم بعد آخر تحديث، لن يتم اكتشافها. تحقق دائمًا من أحدث الاستشارات المنشورة.
يكتشف اختراق سلسلة التوريد لـ TanStack (CVE-2026-45321) والقطع الأثرية ذات الصلة بدودة Mini Shai-Hulud في مشروع محلي.
النص البرمجي مخصص للفحص السريع في نسخ المصدر، وظائف CI، وبناءات Docker. النتيجة النظيفة تعني عدم العثور على أي من المؤشرات المعروفة أدناه. إنه ليس تحقيقًا جنائيًا كاملاً أو ضمانًا بعدم تعرض الجهاز أبدًا.
| الفئة | التفاصيل |
|---|---|
| الحزم المخترقة | جميع حزم @tanstack/* البالغ عددها 42 + 20 ضحية ثانوية انتشرت عبر الدودة (@mistralai، @opensearch-project، @draftlab، safe-action وغيرها) |
| فحص ملف القفل | pnpm-lock.yaml، yarn.lock، bun.lock، bun.lockb، package-lock.json، بما في ذلك إدخالات packages متعددة الأسطر في npm v3 وأقسام المحدد/الإصدار في Yarn v1 |
| ملفات الحمولة | router_init.js، tanstack_runner.js داخل node_modules مع التحقق من SHA-256؛ تطابق التجزئة الدقيق وعدم تطابقه كلاهما يؤديان إلى فشل الفحص |
| ناقل العدوى | @tanstack/setup كـ optionalDependency في أي حزمة مثبتة |
| الثبات | خطافات SessionStart في Claude Code في إعدادات المشروع والمنزل على حد سواء، مهام folderOpen في VS Code، gh-token-monitor (LaunchAgent + systemd)، سير عمل ضار على GitHub |
| القطع الأثرية على القرص | .claude/router_runtime.js، .claude/setup.mjs، .vscode/setup.mjs، gh-token-monitor.sh، com.user.gh-token-monitor.plist |
| مؤشرات المصدر | تجزئات التزامات المهاجم، نطاقات C2 (api.masscan.cloud، git-tanstack.com)، نقاط نهاية بروتوكول Session، ملح PBKDF2، سلاسل حملة |
| تاريخ Git | التزامات بائعها [email protected] |
| أنماط الفروع | dependabot/github_actions/format/* و dependabout/*/setup-formatter |
| إعدادات أدوات AI | ملفات .claude/mcp.json و .kiro/settings/mcp.json المعدلة |
pnpm، yarn، bun، ثم npm). إذا كان المستودع يحمل عمدًا عدة ملفات قفل، افحص حالة كل مدير حزم ذي صلة بشكل منفصل.npm متاحًا وموثقًا بشكل كافٍ لـ npm token list.HOME الحالي للعملية التي تشغل النص. في CI أو الحاويات، قد يختلف ذلك عن دليل المنزل لمحطة المطور.# فحص الدليل الحالي
bash check-tanstack-compromise.sh .
# فحص مشروع معين
bash check-tanstack-compromise.sh /path/to/project
# أمر واحد (curl)
curl -sL https://raw.githubusercontent.com/ry-allan/tanstack-compromise-checker/main/check-tanstack-compromise.sh | bash
رمز الخروج 0 = لم يتم العثور على مؤشرات مغطاة.
رمز الخروج 1 = تم العثور على مؤشر اختراق أو حمولة مشبوهة مغطاة.
═══════════════════════════════════════════════════════════════
فحص اختراق سلسلة توريد TanStack (CVE-2026-45321)
═══════════════════════════════════════════════════════════════
استشارة: GHSA-g7cv-rxg3-hmpx
مرجع: https://snyk.io/blog/tanstack-npm-packages-compromised/
تعمق: https://www.stepsecurity.io/blog/mini-shai-hulud-is-back-…
[*] فحص: /Users/xxxxx/repos/xxxxx
[*] مدير الحزم: pnpm (pnpm-lock.yaml)
[*] التحقق من حزم TanStack المثبتة مقابل 42 إصدارًا معروفًا بالاختراق…
[*] التحقق من الضحايا الثانويين المنتشرين عبر الدودة (Mini Shai-Hulud)…
[*] الحزم: @mistralai، @opensearch-project، @draftlab، @draftauth،
[*] @dirigible-ai، safe-action، cmux-agent-mcp، nextmove-mcp،
[*] git-git-git، git-branch-selector، agentwork-cli، ml-toolkit-ts،
[*] wot-api، cross-stitch، ts-dna
[*] فحص ملف القفل للإصدارات المعروفة بالاختراق (pnpm-lock.yaml)…
[✓] لا توجد إصدارات مخترقة في ملف القفل
[*] التحقق من القطع الأثرية للثبات (ملفات الحمولة، الخطافات، الخدمات، C2)…
[✓] لا توجد التزامات بائع خبيثة في تاريخ git
───────────────────────────────────────────────────────────────
[✓] لم يتم الكشف عن أي اختراق.
قم بتثبيت Aikido Safe Chain لفحص كل تثبيت حزمة تلقائيًا بحثًا عن البرامج الضارة:
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/latest/download/install-safe-chain.sh | sh
أعد تشغيل الطرفية بعد ذلك. Safe Chain يغلف npm، npx، yarn، pnpm، pip، uv والمزيد — مانعًا الحزم الأحدث من 48 ساعة والإصدارات المعروفة بأنها ضارة قبل وصولها إلى القرص. لا حاجة لرموز أو تكوين.
Dockerfile التكامل ينشئ تركيبات اصطناعية فقط. لا يقوم بتنزيل حزم مخترقة حقيقية.
التركيب الرئيسي يؤكد أن جميع رسائل الكشف الـ33 تُطلق عبر بيانات الحزمة، ملفات القفل، القطع الأثرية للثبات، سير العمل، تاريخ git، مؤشرات المصدر، أسماء ملفات الحمولة، إعدادات أدوات AI، وإخراج الإصلاح:
docker build -f integration.Dockerfile -t tanstack-check-test .
بناء Docker يشمل أيضًا تغطية انحدارية مستهدفة لـ:
package-lock.json v3 حيث يظهر اسم الحزمة والإصدار المخترق في سطرين منفصلين.version المخترق في سطرين منفصلين.router_init.js غير المتطابقة تجزئةً والتي تُرجع رمز خروج 1.SessionStart في Claude Code على مستوى المنزل حتى عند وجود ملف .claude/settings.json نظيف على مستوى المشروع.بعد البناء، يمكن تشغيل أمر الصورة مباشرة:
docker run --rm tanstack-check-test
| العمليات الجارية |
عمليات الحمولة المقيمة و gh-token-monitor |
| رموز npm | الرموز المميزة بعلامة فدية (IfYouRevokeThisTokenItWillWipeTheComputerOfTheOwner) |