
Detect CVE-2026-45321 Mini Shai-Hulud आपूर्ति श्रृंखला समझौते का पता लगाएं — TanStack, Mistral AI, UiPath, OpenSearch, Guardrails AI में 170 npm + 2 PyPI जहरीले पैकेजों की स्कैन करता है
एक तेज़, शून्य-निर्भरता वाला Bash स्कैनर जो यह पता लगाता है कि आपकी मशीन CVE-2026-45321 "Mini Shai-Hulud" आपूर्ति श्रृंखला हमले से प्रभावित है या नहीं।
11 मई, 2026 को, TanStack, Mistral AI, UiPath, OpenSearch और Guardrails AI के 170 npm पैकेज और 2 PyPI पैकेज एक साथ जहर दिए गए। दुर्भावनापूर्ण पेलोड AWS क्रेडेंशियल, GitHub टोकन, npm टोकन, Vault सीक्रेट और SSH कुंजियाँ चुराता है — और इसमें एक स्व-प्रचारक वर्म शामिल है जो CI/CD पाइपलाइनों के माध्यम से फैलता है।
curl -fsSL https://raw.githubusercontent.com/qi-scape/scan-shai-hulud/main/scan-shai-hulud.sh | bash
या क्लोन करके चलाएँ:
git clone https://github.com/qi-scape/scan-shai-hulud.git
cd scan-shai-hulud
chmod +x scan-shai-hulud.sh
./scan-shai-hulud.sh
# वर्तमान निर्देशिका + सिस्टम-व्यापी स्थिरता जाँच स्कैन करें
./scan-shai-hulud.sh
# किसी विशिष्ट प्रोजेक्ट को स्कैन करें
./scan-shai-hulud.sh ~/my-project
# पूरे होम निर्देशिका पर गहन स्कैन
./scan-shai-hulud.sh --full
स्कैनर 8 चरण चलाता है:
170 npm पैकेज 15 स्कोप में:
react-router, vue-router, solid-router, router-core, आदि)mistralai, mistralai-azure, mistralai-gcpopensearchagentwork-cli, cmux-agent-mcp, cross-stitch, , , , , , , 2 PyPI पैकेज:
mistralai==2.4.6guardrails-ai==0.10.1यदि स्कैनर गंभीर (CRITICAL) निष्कर्ष रिपोर्ट करता है:
ghp_*, gho_*, ghs_*), npm टोकन, Vault टोकन, SSH कुंजियाँ, Kubernetes सेवा खाता टोकनnpm cache clean --force && rm -rf node_modules && npm installlaunchctl unload ~/Library/LaunchAgents/com.user.gh-token-monitor.plist2026-05-11T19:20Z के बाद GitHub Actions रन का ऑडिट करेंnpm access ls-packagesfind, grep, shasum)mdfind (macOS Spotlight, तेज़ फ़ाइल खोज के लिए)npm, pip (पैकेज/टोकन जाँच के लिए)git (रिपॉजिटरी जाँच के लिए)lsof (नेटवर्क कनेक्शन जाँच के लिए)MIT
| चरण | विवरण |
|---|
| स्थिरता (Persistence) | macOS LaunchAgent (फ़ाइल + launchctl लोडेड स्थिति), Linux systemd सेवा, डेड-मैन स्विच स्क्रिप्ट, .claude/ और .vscode/ पेलोड ड्रॉप, इंजेक्टेड GitHub Actions वर्कफ़्लो, /tmp ड्रॉपर |
| दुर्भावनापूर्ण फ़ाइलें | router_init.js, tanstack_runner.js, router_runtime.js, gh-token-monitor.sh, transformers.pyz — 3 ज्ञात SHA-256 हैश के विरुद्ध सत्यापित |
| C2 संकेतक | कॉन्फ़िग फ़ाइलों (.npmrc, .bashrc, .zshrc, .env) और प्रोजेक्ट स्रोत को 6 C2 डोमेन + अभियान मार्कर के लिए स्कैन करता है |
| npm पैकेज | सभी node_modules ट्री, npm ग्लोबल रूट, लॉकफ़ाइलें (package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lock), npm कैश — सटीक प्रति-पैकेज मिलान के साथ (42 विशिष्ट @tanstack राउटर पैकेज, संपूर्ण स्कोप नहीं) |
| PyPI पैकेज | सभी Python/conda वातावरणों में pip show + requirements.txt, pyproject.toml, Pipfile, poetry.lock |
| Git रिपॉजिटरी | इतिहास में दुर्भावनापूर्ण कमिट हैश, dependabout/*/setup-formatter डेड-ड्रॉप शाखाएँ, डेड-ड्रॉप कमिट लेखक, इंजेक्टेड codeql_analysis.yml |
| शेल इतिहास और एनवायरनमेंट | पेलोड निष्पादन ट्रेस के लिए Bash/Zsh/Fish इतिहास, इंजेक्शन के लिए शेल RC फ़ाइलें, C2 डोमेन के लिए एनवायरनमेंट वेरिएबल |
| नेटवर्क और टोकन | lsof के माध्यम से C2 से सक्रिय कनेक्शन, /etc/hosts, ~/.ssh/known_hosts, npm टोकन सूची |
git-branch-selectorgit-git-gitml-toolkit-tsnextmove-mcpsafe-actionts-dnawot-api| संकेतक | मान |
|---|
| प्राथमिक एक्सफिल | filev2.getsession.org |
| सत्र बीज | seed{1,2,3}.getsession.org |
| द्वितीयक C2 | api.masscan.cloud, git-tanstack.com |
| पेलोड स्टेजिंग | litter.catbox.moe/h8nc9u.js, litter.catbox.moe/7rrc6l.mjs |
| दुर्भावनापूर्ण कमिट | 79ac49eedf774dd4b0cfa308722bc463cfe5885c |