🔍 Contexte
Analyse publiée le 5 juin 2026 par StepSecurity (Ashish Kurmi). L’article documente une attaque de type supply chain ciblant les organisations GitHub de Microsoft, dans le cadre de la campagne Miasma Worm.
🎯 Incident du 5 juin 2026
Un commit malveillant (hash 5f456b8) a été poussé dans le dépôt Azure/durabletask via un compte contributeur préalablement compromis. Ce même compte avait déjà été utilisé lors de l’attaque PyPI du 19 mai 2026. Le commit présentait plusieurs signaux d’alerte :
- Message trompeur (« Switched DataConverter to OrchestrationContext »)
- Flag [skip ci] pour contourner la CI/CD
- Timestamp backdaté au 2020-03-09 (six ans avant le push réel)
- Aucune modification de code source, uniquement 5 fichiers de configuration ajoutés
🛠️ Vecteurs d’attaque : 5 fichiers, 4 outils ciblés
Le commit a planté des fichiers de configuration ciblant les outils de développement IA :
.claude/settings.json: hookSessionStartexécutantnode .github/setup.jsau démarrage de Claude Code.gemini/settings.json: structure identique pour Gemini CLI.cursor/rules/setup.mdc: injection de prompt avecalwaysApply: truepour Cursor AI.vscode/tasks.json: tâche auto-runfolderOpenpour VS Code.github/setup.js: payload JavaScript obfusqué de 4,6 Mo (credential harvester)
Le déclenchement se produit à l’ouverture du dossier dans l’IDE, sans nécessiter d’installation de package.
💥 Impact : 73 dépôts désactivés en 105 secondes
GitHub a désactivé 73 dépôts répartis sur 4 organisations Microsoft (Azure, microsoft, Azure-Samples, MicrosoftDocs) en deux vagues automatisées :
- Vague 1 : 16:00:50–16:01:28 UTC (39 dépôts en 38 secondes)
- Vague 2 : 16:02:24–16:02:35 UTC (34 dépôts en 11 secondes)
La désactivation de Azure/functions-action a provoqué une rupture globale des pipelines CI/CD pour tous les workflows GitHub référençant Azure/functions-action@v1.
🔗 Évolution de l’attaque : 19 mai → 5 juin
| Aspect | 19 mai (PyPI) | 5 juin (GitHub) |
|---|---|---|
| Surface | Registre PyPI | Dépôt GitHub source |
| Déclencheur | import durabletask |
Ouverture dans IDE/IA |
| Payload | rope.pyz (28 Ko, Python) |
setup.js (4,6 Mo, JS) |
| Plateforme | Linux uniquement | Cross-platform |
| C2 | check.git-service[.]com |
Aucun (payload embarqué) |
🕵️ Attribution
L’infrastructure est liée au groupe TeamPCP via le domaine C2 secondaire t.m-kosche[.]com. Ce groupe a précédemment ciblé TanStack (CVE-2026-45321, CVSS 9.6), Mistral AI, l’écosystème @antv (639 versions compromises), @redhat-cloud-services, LiteLLM, Telnyx et Checkmarx. La campagne Miasma a infecté 113+ dépôts GitHub.
📋 Type d’article
Rapport d’incident forensique détaillé produit par StepSecurity, visant à documenter l’étendue de la compromission, les techniques utilisées et la chronologie de l’attaque.
🧠 TTPs et IOCs détectés
Acteurs de menace
TTP
- T1195.001 — Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
- T1078.003 — Valid Accounts: Local Accounts (Defense Evasion)
- T1059.007 — Command and Scripting Interpreter: JavaScript (Execution)
- T1036.007 — Masquerading: Double File Extension (Defense Evasion)
- T1070.006 — Indicator Removal: Timestomp (Defense Evasion)
- T1552.001 — Unsecured Credentials: Credentials In Files (Credential Access)
- T1528 — Steal Application Access Token (Credential Access)
- T1553 — Subvert Trust Controls (Defense Evasion)
- T1071.001 — Application Layer Protocol: Web Protocols (Command and Control)
IOC
- Domaines :
check.git-service.com— VT · URLhaus · ThreatFox - Domaines :
t.m-kosche.com— VT · URLhaus · ThreatFox - Domaines :
git-service.com— VT · URLhaus · ThreatFox - CVEs :
CVE-2026-45321— NVD · CIRCL - Fichiers :
setup.js - Fichiers :
rope.pyz - Fichiers :
settings.json - Fichiers :
setup.mdc - Fichiers :
tasks.json - Chemins :
.claude/settings.json - Chemins :
.gemini/settings.json - Chemins :
.cursor/rules/setup.mdc - Chemins :
.vscode/tasks.json - Chemins :
.github/setup.js
Malware / Outils
- Miasma Worm (other)
- setup.js credential harvester (stealer)
- rope.pyz (stealer)
🟢 Indice de vérification factuelle : 70/100 (haute)
- ⬜ stepsecurity.io — source non référencée (0pts)
- ✅ 19731 chars — texte complet (fulltext extrait) (15pts)
- ✅ 14 IOCs (IPs/domaines/CVEs) (10pts)
- ✅ 3/3 IOCs confirmés (ThreatFox, URLhaus, VirusTotal) (15pts)
- ✅ 9 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ✅ acteur(s) identifié(s) : TeamPCP (5pts)
- ⬜ 0/1 CVE(s) confirmée(s) (0pts)
IOCs confirmés externellement :
check.git-service.com(domain) → VT (20/91 détections)t.m-kosche.com(domain) → VT (17/92 détections)git-service.com(domain) → VT (20/91 détections)
🔗 Source originale : https://www.stepsecurity.io/blog/miasma-worm-hits-microsoft-again-azure-functions-action-and-72-other-repositories-disabled-after-supply-chain-attack-targeting-ai-coding-agents