
Compétence Claude Code pour scanner les machines à la recherche des IOC du ver Mini Shai-Hulud (CVE-2026-45321) de la chaîne d'approvisionnement
Une compétence Claude Code qui scanne les machines à la recherche d'indicateurs de compromission (IOC) du ver de la chaîne d'approvisionnement Mini Shai-Hulud (CVE-2026-45321, CVSS 9.6).
Un ver de la chaîne d'approvisionnement auto-propageant qui a compromis plus de 170 paquets npm/PyPI le 11 mai 2026 – dont @tanstack/*, @mistralai/*, @uipath/*, et @opensearch-project/*. Il vole des identifiants, persiste via les outils de développement, et installe un interrupteur « dead-man's switch » qui efface votre répertoire personnel si vous révoquez les jetons avant de le supprimer.
Acteur de la menace : TeamPCP
Exécute 5 passes de diagnostic vérifiant les artefacts du ver. Entièrement transparent – chaque commande est affichée avant exécution et rien ne s'exécute sans votre approbation explicite.
| Passe | Vérification | Pourquoi |
|---|---|---|
| 1 | Interrupteur « dead-man's switch » (gh-token-monitor) | Efface ~/ si les jetons sont révoqués avant la suppression |
| 2 | Crochets de persistance (Claude Code, VS Code, GitHub Actions) | Ré-exécute le ver au lancement de l'IDE |
| 3 | Fichiers malveillants (router_init.js, tanstack_runner.js) | La charge utile persiste après la suppression du paquet |
| 4 | Versions de paquets compromises dans les lockfiles | Versions affectées de @tanstack, @mistralai, @uipath, @opensearch |
| 5 | IOC réseau (opt-in) | Connexions C2 actives et résolution DNS |
/plugin marketplace add shayr1/shai-hulud-scan
/plugin install shai-hulud-scan
Puis exécutez avec : /shai-hulud-scan
git clone https://github.com/shayr1/shai-hulud-scan.git /tmp/shai-hulud-scan
mkdir -p ~/.claude/skills/shai-hulud-scan
cp /tmp/shai-hulud-scan/SKILL.md ~/.claude/skills/shai-hulud-scan/SKILL.md
Puis exécutez avec : /shai-hulud-scan
Detected platform: macOS. All commands below are tailored for this environment.
### Pass 1: Dead-Man's Switch
The worm installs a daemon called `gh-token-monitor` that polls GitHub every
60 seconds. If it detects that your GitHub token has been revoked, it executes
`rm -rf ~/` - wiping your entire home directory.
Commands that will run:
test -f ~/Library/LaunchAgents/com.user.gh-token-monitor.plist && echo "FOUND" || echo "NOT FOUND"
launchctl list 2>/dev/null | grep gh-token-monitor || echo "NOT FOUND"
test -f ~/.local/bin/gh-token-monitor.sh && echo "FOUND" || echo "NOT FOUND"
> Approve running these commands? [Approve / Skip]
Pass 1 - Dead-man's switch: CLEAN
## Scan Complete - Results
| Pass | Check | Result |
|------|-----------------------|---------|
| 1 | Dead-man's switch | CLEAN |
| 2 | Persistence hooks | CLEAN |
| 3 | Malicious files | CLEAN |
| 4 | Compromised packages | CLEAN |
| 5 | Network IOCs | SKIPPED |
CVE: CVE-2026-45321 | CVSS: 9.6 | Threat Actor: TeamPCP
ab4fcadaec49c03278063dd269ea5eef82d24f2124a8e15d7b90f2fa8601266c – router_init.js2ec78d556d696e208927cc503d48e4b5eb56b31abc2870c2ed2e98d6be27fc96 – tanstack_runner.js2258284d65f63829bd67eaba01ef6f1ada2f593f9bbe41678b2df360bd90d3df – setup.mjsgit-tanstack.com (domaine typosquat)api.masscan.cloud (exfiltration de secrets)filev2.getsession.org (exfiltration via Session Protocol)83.142.209.194 (voleur d'identifiants mistralai)~/Library/LaunchAgents/com.user.gh-token-monitor.plist (macOS)~/.config/systemd/user/gh-token-monitor.service (Linux)~/.local/bin/gh-token-monitor.sh (macOS/Linux)~/.claude/router_runtime.js, ~/.claude/setup.mjs.vscode/setup.mjs, .github/workflows/codeql_analysis.ymlvoicproducoes (compte npm de l'attaquant)79ac49eedf (préfixe de hachage de commit orphelin)MIT