Full Report
Microsoft removed 73 repositories across its Azure, microsoft, Azure-Samples, and MicrosoftDocs organizations on GitHub, disrupting continuous integration pipelines. [...]
Analysis Summary
# Incident Report: Miasma/Shai-Hulud Supply Chain Attack on Microsoft Repositories
## Executive Summary
Microsoft temporarily disabled 73 repositories across its major organization accounts (Azure, Microsoft, MicrosoftDocs) following a compromise linked to the Miasma/Shai-Hulud malware campaign. The attack utilized an "orphan commit" technique and OIDC token theft to inject malicious content, disrupting CI/CD pipelines for numerous developers. Microsoft contained the incident within 105 seconds and has since restored all legitimate content.
## Incident Details
- **Discovery Date:** June 5, 2026
- **Incident Date:** Initial activity detected in May 2026; major disruption on June 5, 2026
- **Affected Organization:** Microsoft (GitHub Organizations: Azure, microsoft, Azure-Samples, MicrosoftDocs)
- **Sector:** Technology / Software Development
- **Geography:** Global
## Timeline of Events
### Initial Access
- **Date/Time:** May 2026
- **Vector:** Compromise of a Red Hat employee’s GitHub account.
- **Details:** The threat actor gained access to the Red Hat cloud services npm namespace, subsequently pivoting to target Microsoft resources through interconnected developer ecosystems.
### Lateral Movement
- **Mechanism:** Attackers pushed "unreviewed orphan commits" to internal repositories. These commits contained workflows designed to request GitHub OIDC (OpenID Connect) tokens, allowing the actor to cross-authenticate into further environments.
### Data Exfiltration/Impact
- **Impact:** 73 repositories were disabled, causing a major outage for the `Azure/functions-action` pipeline. Malicious versions (1.4.1–1.4.3) of the `durabletask` PyPI package were published to steal credentials.
### Detection & Response
- **Discovery:** System monitoring flagged potential malicious content distribution.
- **Response Actions:** GitHub Staff disabled the repositories within 105 seconds of the malicious activity trigger. Impacted customers were notified via established support channels.
## Attack Methodology
- **Initial Access:** Valid Account Compromise (Red Hat employee credentials).
- **Persistence:** Pushing orphan commits (commits without parents) to inject malicious workflows.
- **Privilege Escalation:** Use of GitHub OIDC tokens to gain elevated permissions across services.
- **Defense Evasion:** Use of "orphan commits" to bypass standard code review visibility; removal of repos by Microsoft was the ultimate containment.
- **Credential Access:** Credential-stealing malware (Miasma/Shai-Hulud) targeting AI coding tools (Claude Code, Gemini CLI, Cursor).
- **Discovery:** Reconnaissance of high-value CI/CD actions like `Azure/functions-action`.
- **Lateral Movement:** Pivoting from npm namespaces to PyPI and GitHub organizations.
- **Impact:** Supply chain disruption and potential credential theft from developers.
## Impact Assessment
- **Financial:** No specific costs disclosed, though developer productivity loss was significant during the outage.
- **Data Breach:** Exposure of OIDC tokens; potential theft of developer credentials for those who pulled malicious versions of `durabletask`.
- **Operational:** Disruption of CI/CD pipelines globally; downtime for `Azure Functions` deployment workflows.
- **Reputational:** High-profile incident involving key Microsoft and Red Hat infrastructure.
## Indicators of Compromise
- **File indicators:** `durabletask` PyPI package versions 1.4.1, 1.4.2, 1.4.3.
- **Behavioral indicators:** Unexpected GitHub Actions requesting OIDC tokens; presence of orphan commits in repository history; "Miasma" malware signatures in AI coding tool directories.
## Response Actions
- **Containment:** 73 repositories were disabled within 105 seconds of discovery.
- **Eradication:** Removal of malicious versions from PyPI; cleanup of unreviewed commits.
- **Recovery:** Restoration of all 73 repositories to a "clean and safe" state; direct customer notification sent to affected parties.
## Lessons Learned
- **Orphan Commit Weakness:** Standard review processes may miss "orphan commits" that do not appear in the primary branch history.
- **OIDC Risk:** Automated workflows requesting OIDC tokens can be weaponized to move laterally between cloud services.
- **Speed Matters:** The 105-second response time was critical in preventing broader infection of the developer community.
## Recommendations
- **Lock Dependencies:** Developers should use lockfiles (e.g., `package-lock.json`, `requirements.txt` with hashes) to prevent automatic updates to malicious versions.
- **Workflow Security:** Audit GitHub Action permissions to ensure they follow the principle of least privilege, particularly regarding OIDC tokens.
- **Isolation:** Test new builds and package updates in isolated "sandbox" environments before moving to production.
- **MFA:** Enforce hardware-based MFA for all employees with access to critical GitHub organizations.