
ماسح ضوئي لدودة سلسلة التوريد Mini Shai-Hulud في npm/PyPI (NHS CC-4781 · CVE-2026-45321). يكتشف استمرارية gh-token-monitor، وقطع أثر الحمولة، والتزامات المهاجم. Python، Bash، PowerShell.
ماسح مجاني يعمل دون اتصال لدودة سلسلة التوريد npm/PyPI التي تلتهم حالياً الحزم الرئيسية. صممه فريق Intrudify. بدون تسجيل، بدون تتبع (telemetry)، يعمل بالكامل دون اتصال بالإنترنت.
NHS CC-4781 · CVE-2026-45321 (CVSS 9.6) · GHSA-g7cv-rxg3-hmpx
إذا كنت قد نفّذت npm install أو pip install خلال الأسابيع الماضية، فهذا الماسح موجّه إليك.
لا سيما إذا كنت قد تعاملت مع @tanstack/* أو @uipath/* أو @mistralai/* أو @cap-js/* أو حزم PyPI مثل litellm أو mistralai أو guardrails-ai أو lightning أو telnyx. هذه هي النطاقات (namespaces) المؤكّد تسميمها. 149 حزمة إجمالاً، وأكثر من 400 نسخة خبيثة تم تعقّبها حتى الآن.
Mini Shai-Hulud هي الدودة المسؤولة عن الضرر. تسرق بيانات اعتماد npm وGitHub لديك، وتزرع آليات استمرارية (persistence) عبر macOS وLinux وWindows، وتترك (وهذا ما يغفل عنه معظم الناس) رمزاً مكمناً (booby-trapped token). إذا أبطَلتَه من الجهاز المصاب فإنها تشغّل rm -rf ~/. دليل منزلك بالكامل، سيُحذف. ترتيب التنظيف مهم.
يفحص هذا الماسح جميع مؤشرات الاختراق البالغ عددها 19 المعروفة عبر الحزم وملفات القفل (lockfiles) وآليات الاستمرارية وتجزئات الحمولة (payload hashes) وحركة مرور C2 وسجل git وبيئات CI. إنه يقرأ فقط. لا يكتب، ولا يحذف، ولا يرسل أي شيء إلى الخارج.
ثلاثة نصوص برمجية لمهمة واحدة: بايثون، باش، وباور شيل. اختر ما يناسب بيئتك التقنية.
Intrudify هي أول أداة اختبار اختراق لتطبيقات الويب في أوروبا تعمل بالذكاء الاصطناعي وبشكل مستقل تماماً. الفكرة بسيطة: الناتج نفسه الذي يقدمه فريق اختبار اختراق بشري بتكلفة 30 ألف دولار، لكن خلال ساعات بدلاً من أسابيع، مع تقرير جاهز للتدقيق وإرشادات معالجة خطوة بخطوة لمتطلبات NIS2 وSOC2 وISO27001. إذا كنت تُصدر برمجيات وليس لديك فريق أمني، فهذه هي الفجوة التي نسدّها.
هذا الماسح جزء من ذلك. وهو مجاني لأن ديدان سلسلة التوريد تتحرك أسرع من دورات الشراء. مطوّر يحدّق في خلاصة CVE في الحادية عشرة ليلاً لا يحتاج إلى مكالمة مبيعات. بل يحتاج إلى أداة تعمل في 30 ثانية وتخبره إن كان وقع في المأزق أم لا.
لحالات الاختراق النشطة (اختطاف خطوط CI/CD، إساءة استخدام رموز OIDC الخاصة بـ GitHub Actions، الاستجابة لحوادث سلسلة توريد npm/PyPI)، تواصل معنا مباشرة: [email protected]
إذا كنت قد ثبّت حزمة npm أو PyPI في الأسابيع القليلة الماضية، وخصوصاً أي شيء من @tanstack/* أو @uipath/* أو @mistralai/* أو @cap-js/* أو من حزم PyPI مثل litellm أو mistralai أو guardrails-ai أو lightning أو telnyx، فقد يكون جهازك مخترقاً.
دودة Mini Shai-Hulud تسرق بيانات الاعتماد، وتزرع آليات استمرارية عبر macOS وLinux وWindows، ويمكنها مسح دليل منزلك بالكامل إذا تعاملت مع التنظيف بالترتيب الخاطئ.
يفحص هذا الماسح جميع المؤشرات البالغ عددها 19 المعروفة. إنه يقرأ فقط. لا يكتب، ولا يحذف، ولا يرسل أي شيء من جهازك.
تزرع الدودة رمز npm مكمناً (booby-trapped). إبطاله من الجهاز المصاب يؤدي إلى تشغيل rm -rf ~/. الترتيب مهم.
إذا عثر الماسح على نتائج حرجة (CRITICAL)، فافعل الآتي بالترتيب:
| أنت على... | استخدم هذا |
|---|
# macOS / Linux
chmod +x scan_cc4781.sh
./scan_cc4781.sh --deep
# Windows PowerShell
.\scan_cc4781.ps1 -Deep
# Python (any OS)
python3 scan_cc4781.py --deep
يتعمق خيار --deep / -Deep في جميع مجلدات node_modules ضمن الدليل الحالي. يُنصح به إذا كان لديك مستودع متعدد الحزم (monorepo) أو مشاريع متعددة.
إذا قام باور شيل بحظر النص البرمجي:
powershell -ExecutionPolicy Bypass -File .\scan_cc4781.ps1 -Deep
RESULT: 0 CRITICAL / 0 HIGH → you're clean
RESULT: X CRITICAL / Y HIGH → stop and follow the steps above before doing anything else
CRITICAL = مؤشر اختراق مؤكّد. تصرّف فوراً.
HIGH = مشبوه. حقّق فيه. بعض نتائج HIGH هي إيجابيات كاذبة متوقعة (انظر أدناه).
CC-4781 / Mini Shai-Hulud Supply-Chain Attack Scanner
Host: your-hostname OS: your-os
Checking 149 npm packages (400+ malicious versions), 5 PyPI packages
[OK] gh-token-monitor process not detected
[HIGH] payload-artefact: sysmon.py -> .../coverage/sysmon.py <- false positive: Python coverage package
[HIGH] payload-artefact: execution.js -> .../n8n/.../execution.js <- false positive: n8n
[OK] git-tanstack.com does not resolve
[OK] No malicious optionalDependencies github: references found
[OK] No attacker exfil commits in git log
RESULT: 0 CRITICAL / 4 HIGH
نتيجتا HIGH الخاصتان بـ sysmon.py وexecution.js هما إيجابيتان كاذبتان: أسماء الملفات تطابق أسماء حمولات الدودة لكن تجزئات SHA-256 لا تطابقها. لا تُطلق CRITICAL إلا عندما تطابق التجزئة حمولة مؤكّدة الخبث.
تنسيق مخرجات JSON: { "host": "...", "findings": [{ "severity": "CRITICAL|HIGH", "category": "...", "detail": "...", "path": "..." }] }
مهم: اجتياز npm audit signatures لا يعني أنك في أمان. Mini Shai-Hulud هو أول هجوم موثّق يولّد إثبات منشأ (provenance) صالحاً بمستوى SLSA Build Level 3 عبر اختطاف خط OIDC في GitHub Actions. التوقيعات تتحقق من منشأ البناء، وليس من أن خط البناء نفسه كان نظيفاً.
تستخدم الدودة تشويشاً من ثلاث طبقات: obfuscator.io، ثم تشفير استبدال Fisher-Yates (PBKDF2-SHA256، 200,000 تكرار)، ثم AES-256-GCM. تسرّب بيانات الاعتماد عبر شبكة توزيع محتوى Session Protocol، ونقاط إخفاء (dead-drops) في GitHub GraphQL، وcanister على بلوكتشين ICP، وإخفاء بيانات في ملفات WAV (steganography).
تُزرع آليات الاستمرارية كـ macOS LaunchAgent أو وحدة Linux systemd أو مهمة مجدولة في Windows أو مفتاح HKCU Run أو خطاف Claude Code SessionStart أو مهمة VS Code folderOpen أو ملف تشغيل Python .pth. وفي مشغّلات CI المخترقة تزرع Kubernetes DaemonSet.
يقترن رمز الفدية RANSOM TOKEN (IfYouRevokeThisTokenItWillWipeTheComputerOfTheOwner) ببرنامج خفي (daemon) باسم gh-token-monitor يستعلم من api.github.com/user كل 60 ثانية. أي استجابة من فئة 40x تؤدي إلى تشغيل rm -rf ~/ على Linux/macOS أو ما يعادله على Windows.
مجمّعة من GHSA-g7cv-rxg3-hmpx، وJFrog Security Research، وStepSecurity، وSocket.dev، وWiz Threat Research، وSnyk، وAikido Security، وOrca Security، وMend.io (حتى 2026-05-13).
قواعد الكشف: Sigma 5299fadf-f228-4526-8274-251db1960be9 (تنفيذ Shai-Hulud الخبيث عبر Bun)، توقيع Palo Alto ATP 87120.
يتخصص Intrudify في الاستجابة لحوادث سلسلة توريد npm/PyPI، واختطاف خطوط CI/CD، وإساءة استخدام رموز OIDC الخاصة بـ GitHub Actions.
تواصل: [email protected] · intrudify.com
| macOS أو Linux | scan_cc4781.sh (أو scan_cc4781.py إذا كنت تفضّل بايثون) |
| Windows | scan_cc4781.ps1 (أو scan_cc4781.py مع بايثون أصلي) |
| CI / Docker | scan_cc4781.py أو scan_cc4781.sh |
| الخيار | Bash / Python | PowerShell | ماذا يفعل |
|---|
| فحص عميق | --deep | -Deep | يتعمق في جميع node_modules ضمن الدليل الحالي |
| مجلد الهدف | --npm-dir /path | -NpmDir C:\path | يفحص مجلد node_modules معيناً |
| مخرجات JSON | --json | -Json | مخرجات قابلة للقراءة آلياً لأنظمة SIEM / SOAR |
| # | الفئة | ما يبحث عنه |
|---|
| 1 | نسخ npm | 149 حزمة، أكثر من 400 نسخة مؤكّدة الخبث |
| 2 | ملفات القفل | package-lock.json, pnpm-lock.yaml, yarn.lock |
| 3 | PyPI | litellm, telnyx, lightning, mistralai, guardrails-ai |
| 4 | الاستمرارية | macOS LaunchAgent، Linux systemd، Windows Scheduled Task + مفتاح HKCU Run |
| 5 | الاستمرارية | خطاف Claude Code SessionStart، مهمة VS Code folderOpen |
| 6 | ملفات الحمولة | 13 اسم ملف + SHA-256 مقابل 11 تجزئة معروفة الخبث |
| 7 | مضيفات C2 | 11 نطاقاً في /etc/hosts، ومتغيرات بيئة البروكسي، وWinHTTP |
| 8 | DNS الخاص بـ C2 | حلّ جميع نطاقات C2 البالغ عددها 11 |
| 9 | اتصالات C2 | اتصالات TCP نشطة إلى 5 عناوين C2 مُتتبَّعة |
| 10 | package.json | حقن optionalDependencies github:tanstack/router |
| 11 | package.json | حقن prepare: bun run tanstack_runner.js |
| 12 | سير العمل | .github/workflows/codeql_analysis.yml, format-check.yml |
| 13 | سجل git | التزامات سرقة بيانات من المهاجم ([email protected]) |
| 14 | فروع git | فروع الدودة المستوحاة من Dune، تصيّد dependabout/ الإملائي |
| 15 | رموز npm | كشف RANSOM TOKEN |
| 16 | سجل الأوامر | نطاقات C2 وعناوين IP وأسماء ملفات الحمولة |
| 17 | بيئة CI | تسريب بيانات اعتماد GitHub Actions |
| 18 | المستودعات البعيدة (Git remotes) | حسابات المهاجم ونطاقات C2 |
| 19 | استمرارية متقدمة | تنكّر خدمة sysmon/pgmon، litellm_init.pth، Kubernetes DaemonSet، إخفاء بيانات WAV (steganography) |
| الموجة | التاريخ | الحزم | الناشر |
|---|
| TanStack | مايو 2026 | 43 حزمة @tanstack/* | voicproducoes |
| UiPath / JFrog | مايو 2026 | 66 حزمة @uipath/* | voicproducoes / zblgg |
| SAP @cap-js | أبريل 2026 | @cap-js/db-service, @cap-js/sqlite, @cap-js/postgres, mbt | cloudmtabot |
| PyPI | فبراير--أبريل 2026 | litellm, telnyx, lightning, mistralai, guardrails-ai | متعددون |