Skip to content

Back to the catalog

Miasma Blight Reaches Microsoft: 73 Repos Disabled in 105 Seconds
opensourcemalware.comwriteup

Miasma Blight Reaches Microsoft: 73 Repos Disabled in 105 Seconds

Investigates GitHub's mass disabling of 73 Microsoft repositories across the Azure, Azure-Samples, microsoft, and MicrosoftDocs orgs within a 105-second window on June 5, all flagged for ToS violations, including the widely-used Azure/functions-action GitHub Action that broke CI pipelines globally. The author links the takedown to a re-compromise of the durabletask PyPI package (previously hit May 19 by TeamPCP via stolen GitHub Actions secrets) and to Miasma, a rebrand of TeamPCP's open-sourced Mini Shai-Hulud worm that Aikido and OX Security found had added Azure/GCP credential collectors and self-propagates by committing stolen secrets into attacker-created public repos, which is what likely triggered GitHub's automated abuse enforcement.

TL;DR GitHub auto-disabled 73 Microsoft/Azure repos (including the Azure/functions-action used in countless CI pipelines) in 105 seconds, likely tied to a durabletask PyPI re-compromise and the Miasma/Shai-Hulud npm worm's new Azure credential-stealing capability.
Document

What it is

A follow-up on the June 5, 2026 GitHub takedown of 73 Microsoft repos, adding the detail the summary lacks: the specific PyPI compromise, the mutable-tag failure mode that broke pipelines, and Microsoft's own recommended workarounds during the outage.

How it works

The recurring root is the durabletask PyPI package (Microsoft's official Azure Durable Task SDK, ~417,000 downloads/month). On May 19, three malicious versions — 1.4.1, 1.4.2, 1.4.3 — were pushed to PyPI inside a 35-minute window with no matching tags, releases, or CI runs in the GitHub repo, indicating direct publishing via stolen GitHub Actions secrets rather than the normal build path. Those were yanked within hours. A month later the same ecosystem became the hub of the takedown, which the author reads as the May credentials never having been fully revoked.

The CI blast radius comes from mutable tags: Azure/functions-action@v1 floats, so when GitHub disabled the source repo the tag simply stopped resolving and every referencing workflow broke. A pinned commit SHA would have kept resolving (or failed predictably) rather than evaporating.

Preconditions / Affected

  • Any pipeline referencing Azure/functions-action@v1 or functions-container-action — these are actions that run inside other people's workflows, so they can't be pinned around by consumers of a library.
  • Anyone who installed durabletask versions 1.4.1, 1.4.2, or 1.4.3 during the May 19 window.

What to do

  • Check for the malicious durabletask versions 1.4.1, 1.4.2, 1.4.3 in any environment that pulled from PyPI around May 19.
  • Pin GitHub Actions to a full commit SHA rather than a floating tag like @v1, so a disabled source fails loudly instead of vanishing.
  • While functions-action is down, Microsoft's staff recommended alternative deployment methods: Azure CLI, Azure DevOps Pipelines, VS Code deployment, Zip Deploy, or Azure Pipelines instead of GitHub Actions.

Caveats

  • The re-compromise link is the author's inference ("plausibly never fully lost them"), not confirmed root cause — GitHub's banner cites only a terms-of-service violation.
  • Microsoft's public messaging was contradictory: a staffer first cited "GitHub policy violations (malware, phishing…)," then revised twelve minutes later to "an internal management issue" — so the official cause is unsettled.
  • The May attribution to threat actor TeamPCP comes from Wiz, Endor Labs, and StepSecurity (per the summary); this post asserts continuity but does not independently establish the June mechanism.

Organisations named here

  • Shai-Hulud

Technologies named here

  • GitHub automated abuse/terms-of-service enforcement
  • durabletask
  • Azure/functions-action
  • Bun
  • functions-container-action
  • Azure CLI
  • Azure DevOps Pipelines
  • @redhat-cloud-services npm namespace
  • VS Code deployment
  • Azure CLI auth caches / managed-identity tokens
  • Zip Deploy
  • Azure Pipelines
  • npm
  • PyPI
  • GitHub Actions
  • Azure
  • GitHub
  • Azure/durabletask

Techniques named here

  • Mutable tag / floating version reference abuse
  • Credential harvesting of Azure and GCP secrets
  • Malicious preinstall script execution

Threat actors named here

  • TeamPCP
  • Miasma
  • Mini Shai-Hulud
  • Shai-Hulud
  • Miasma worm