
Навык Claude Code для сканирования машин на наличие IOCs червя цепочки поставок Mini Shai-Hulud (CVE-2026-45321)
Навык Claude Code, который сканирует машины на наличие индикаторов компрометации (IOC) от червя цепочки поставок Mini Shai-Hulud (CVE-2026-45321, CVSS 9.6).
Самовоспроизводящийся червь цепочки поставок, скомпрометировавший более 170 npm/PyPI пакетов 11 мая 2026 года — включая @tanstack/*, @mistralai/*, @uipath/* и @opensearch-project/*. Он крадет учетные данные, закрепляется с помощью инструментов разработчика и устанавливает механизм «мертвой руки», который уничтожает вашу домашнюю директорию, если вы отзовете токены до его удаления.
Угроза: TeamPCP
Выполняет 5 диагностических проходов для проверки артефактов червя. Полностью прозрачно — каждая команда показывается перед выполнением, и ничего не запускается без вашего явного согласия.
/plugin marketplace add shayr1/shai-hulud-scan
/plugin install shai-hulud-scan
Затем выполните с помощью: /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
Затем выполните с помощью: /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 (домен-типосквот)api.masscan.cloud (экфильтрация секретов)filev2.getsession.org (экфильтрация через Session Protocol)83.142.209.194 (стилер учетных данных 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 (аккаунт атакующего в npm)79ac49eedf (префикс хеша осиротевшего коммита)MIT
| Проход | Проверка | Почему |
|---|
| 1 | Механизм «мертвой руки» (gh-token-monitor) | Уничтожает ~/, если токены отозваны до удаления |
| 2 | Хуки персистентности (Claude Code, VS Code, GitHub Actions) | Повторно запускает червя при запуске IDE |
| 3 | Вредоносные файлы (router_init.js, tanstack_runner.js) | Полезная нагрузка сохраняется после удаления пакета |
| 4 | Скомпрометированные версии пакетов в lock-файлах | Затронутые версии @tanstack, @mistralai, @uipath, @opensearch |
| 5 | Сетевые IOC (по желанию) | Активные C2-соединения и разрешение DNS |