đ Contexte
PubliĂ© le 25 juin 2026 par Yair Benamou (JFrog Security Research), cet article documente une nouvelle vague de la campagne Shai-Hulud, dĂ©signĂ©e Hades, ciblant l’Ă©cosystĂšme npm Leo/RStreams â une plateforme de streaming d’Ă©vĂ©nements AWS-native utilisĂ©e dans des pipelines serverless et CI/CD.
đŻ Packages ciblĂ©s
20 packages npm légitimes ont été compromis, dont :
leo-sdk,leo-auth,leo-aws,leo-logger,leo-configrstreams-metrics,rstreams-shard-utilserverless-leo,serverless-convention- Packages
@immobiliarelabs/backstage-plugin-gitlab-backend,@immobiliarelabs/backstage-plugin-gitlab,@immobiliarelabs/backstage-plugin-ldap-auth-backend,@immobiliarelabs/backstage-plugin-ldap-auth
Ces packages totalisaient environ ~127K tĂ©lĂ©chargements dans le mois prĂ©cĂ©dant l’analyse.
âïž Technique de livraison
Le payload exploite une technique d’Ă©vasion via binding.gyp : en l’absence de script install explicite dans package.json, npm dĂ©clenche automatiquement node-gyp rebuild, qui exĂ©cute des commandes shell embarquĂ©es dans des expressions <!(...) >. Cela permet l’exĂ©cution du payload Ă l’installation tout en contournant les scanners inspectant uniquement les lifecycle scripts npm.
đŠ Comportement du payload
Le payload appartient à la lignée Shai-Hulud et conserve les comportements suivants :
- Vol de credentials : fichiers, variables d’environnement, historique shell, tokens GitHub CLI, credentials cloud, tokens de package managers, environnements CI/CD
- Exfiltration via GitHub dead-drop : création de dépÎts sous un token GitHub valide, dépÎt de fichiers chiffrés sous
results/results-<timestamp>-<counter>.json - Persistance sur npm, PyPI, RubyGems, JFrog/Artifactory, GitHub Actions, outils IA
- Dead-man switch
gh-token-monitor - Dump de secrets GitHub Actions via
VARIABLE_STOREetformat-results.txt - Mouvement latéral SSH via
ai_setup.shetai_init.js - Camouflage réseau utilisant
api.anthropic.com/v1/apicomme hĂŽte leurre
đ Changements par rapport aux vagues prĂ©cĂ©dentes
- Marqueur de campagne : “Alright Lets See If This Works” (remplace “Miasma - The Spreading Blight” et “Hades - The End for the Damned”)
- Marqueur de token relay : “RevokeAndItGoesKaboom” (remplace “IfYouInvalidateThisTokenItWillNukeTheComputerOfTheOwner”)
- Ajout d’un chemin SEED_PAT conditionnel : activĂ© uniquement si la variable
GITHUB_REPOSITORYcontient “Seeder”, suggĂ©rant un mĂ©canisme de bootstrap opĂ©rateur - 414 dĂ©pĂŽts GitHub publics identifiĂ©s avec le nouveau marqueur au moment de l’analyse
đ Type d’article
Publication de recherche technique Ă visĂ©e CTI, documentant une nouvelle itĂ©ration d’une campagne active de supply chain attack npm avec extraction complĂšte des IOCs et indicateurs comportementaux.
đ§ TTPs et IOCs dĂ©tectĂ©s
TTP
- T1195.001 â Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
- T1059.004 â Command and Scripting Interpreter: Unix Shell (Execution)
- T1552.001 â Unsecured Credentials: Credentials In Files (Credential Access)
- T1552.007 â Unsecured Credentials: Container API (Credential Access)
- T1567.001 â Exfiltration Over Web Service: Exfiltration to Code Repository (Exfiltration)
- T1547 â Boot or Logon Autostart Execution (Persistence)
- T1021.004 â Remote Services: SSH (Lateral Movement)
- T1027 â Obfuscated Files or Information (Defense Evasion)
- T1553 â Subvert Trust Controls (Defense Evasion)
IOC
- URLs :
https://api.anthropic.com/v1/apiâ URLhaus - URLs :
https://github.com/oven-sh/bun/releases/download/bun-v1.3.13/â URLhaus - URLs :
https://github.com/oven-sh/bun/releases/download/bun-v1.3.14/â URLhaus - Fichiers :
binding.gyp - Fichiers :
index.js - Fichiers :
ai_setup.sh - Fichiers :
ai_init.js - Fichiers :
gh-token-monitor.sh - Fichiers :
update.py - Fichiers :
format-results.txt - Chemins :
/tmp/p*.js - Chemins :
/tmp/b-*/bun - Chemins :
/tmp/b-*/b.zip - Chemins :
/tmp/.bun_ran - Chemins :
~/.config/gh-token-monitor/ - Chemins :
~/.config/gh-token-monitor/token - Chemins :
~/.config/gh-token-monitor/handler - Chemins :
~/.local/bin/gh-token-monitor.sh - Chemins :
~/.config/systemd/user/gh-token-monitor.service - Chemins :
~/Library/LaunchAgents/com.user.gh-token-monitor.plist - Chemins :
~/.local/share/updater/update.py - Chemins :
~/.local/share/updater/ - Chemins :
~/.config/index.js - Chemins :
.cursor/rules/setup.mdc - Chemins :
.gemini/settings.json - Chemins :
.cursorrules - Chemins :
.windsurfrules - Chemins :
.github/copilot-instructions.md - Chemins :
mcp.json - Chemins :
.aider.conf.yml
Malware / Outils
- Shai-Hulud/Hades payload (stealer)
- gh-token-monitor (tool)
- node-gyp (other)
đĄ Indice de vĂ©rification factuelle : 50/100 (moyenne)
- ⏠research.jfrog.com â source non rĂ©fĂ©rencĂ©e (0pts)
- â 12031 chars â texte complet (fulltext extrait) (15pts)
- â 30 IOCs (IPs/domaines/CVEs) (10pts)
- ⏠0/3 IOCs confirmés externellement (0pts)
- â 9 TTPs MITRE identifiĂ©es (15pts)
- â date extraite du HTML source (10pts)
- ⏠aucun acteur de menace nommé (0pts)
- ⏠pas de CVE à vérifier (0pts)
đ Source originale : https://research.jfrog.com/post/shai-hulud-miasma-alright-lets-see-if-this-works/