Microsoft's GitHub repositories have become the latest to fall victim to the ongoing Miasma self-replicating supply chain attack campaign.

The incident impacted 73 Microsoft repositories across four of its GitHub organizations, including Azure, Azure-Samples, Microsoft, and MicrosoftDocs, per OpenSourceMalware. The development has prompted GitHub to disable access to those repositories.

"Access to this repository has been disabled by GitHub Staff due to a violation of GitHub's terms of service," reads the message when attempting to access the "Azure/azure-functions-host" repository. "If you are the owner of the repository, you may reach out to GitHub Support for more information."

According to OpenSourceMalware, some of the repositories impacted by the incident are listed below -

  • azure-search-openai-demo-purviewdatasecurity
  • Connectors-NET-LSP
  • Connectors-NET-SDK
  • durabletask
  • durabletask-dotnet
  • durabletask-go
  • durabletask-js
  • durabletask-mssql
  • functions-container-action
  • homebrew-functions
  • llm-fine-tuning
  • windows-driver-docs

What's notable about the latest campaign is the re-compromise of the "durabletask" PyPI package, which was infected by TeamPCP last month to deliver an information stealer on Linux systems.

"A month later, not only is Azure/durabletask gone - so is every sibling repo in the Durable Task ecosystem, sitting one org over in Microsoft: the .NET, Go, Java, JS, MSSQL, Netherite, and protobuf implementations, plus the Durable Functions monitor," security researcher Paul McCarty (aka 6mile) said.

"When the repo at the root of last month's compromise is the hub of this month's takedown, that is not a coincidence - that is the same wound reopening. Whoever held those credentials in May plausibly never fully lost them."

Miasma is assessed to be a variant of the Mini Shai-Hulud worm that TeamPCP publicly released in mid-May 2026. It has since continued to mutate and refine its tactics, even as it has infected more packages over the past couple of days, using various descriptions for the newly-created public repositories containing the stolen secrets -

  • Miasma: The Spreading Blight
  • Miasma : The Spreading Blight
  • Miasma - The Spreading Blight
  • Hades - The End for the Damned

As of writing, there are 13 repositories with the description "Hades - The End for the Damned" and 82 repositories with the remaining three naming patterns.

Miasma has also been observed skipping the npm registry entirely, with the threat actors pushing malicious code directly to "icflorescu/mantine-datatable" and four related repositories: "mantine-contextmenu," "next-server-actions-parallel," "mantine-datatable-v6," and "mantine-contextmenu-v6."

"The commit added no dependencies. It planted a 4.3 MB payload runner and wired it to execute automatically through five developer tools: Claude Code, Gemini CLI, Cursor, VS Code, and the npm test script," SafeDep said. "The attack detonates when a developer clones one of the affected repos and opens it in an AI coding agent. The dropper is the same staged Bun loader, here repurposed for GitHub source-repo persistence rather than registry poisoning."

These software supply chain attacks have exposed the underlying weaknesses in the trust model that forms the basis of software delivery in open-source ecosystems, making it one of the most significant and sustained campaigns observed to date. What separates the activity from other incidents is its ability to exponentially propagate across the ecosystem by compromising downstream users and repeating the same cycle.

"The worm's genius and the reason conventional defences largely failed is that it operates entirely within legitimate channels. It does not exploit a vulnerability in npm or GitHub," FalconFeeds.io said. "It exploits the trust model those platforms are built on: the assumption that if a package is signed with a valid key and published by an authenticated maintainer, it is safe."

"Shai-Hulud compromises the key and the maintainer, then proceeds to act exactly as a legitimate publisher would. From the registry's perspective, every malicious publish event is indistinguishable from a routine update."

Update

StepSecurity, in a report published June 5, 2026, said the same contributor account behind the May compromise of the durabletask PyPI package was used to push a malicious commit.

"Instead of poisoning a package registry, the commit planted configuration files that trigger automatic code execution when a developer opens the repository in an AI coding tool or IDE," security researcher Ashish Kurmi said. The commit has been found to add five files designed to achieve code execution across four different developer tools -

  • .claude/settings.json, by embedding an Anthropic Claude Code SessionStart hook that causes the payload to be executed automatically whenever a session starts.
  • .gemini/settings.json, by embedding a Google Gemini CLI SessionStart hook that causes the payload to be executed automatically whenever a session starts.
  • .cursor/rules/setup.mdc, by embedding a prompt injection that instructs the Cursor AI agent to execute the payload by treating it as a project setup requirement.
  • .vscode/tasks.json, by embedding a Microsoft Visual Studio Code auto-run task through the "runOn: folderOpen" option.

"The fact that the same account was used again means one of three things happened," StepSecurity said. "The account's credentials were never fully rotated after May 19, and the attacker retained a working GitHub token."

"The contributor was re-compromised through the worm's own propagation loop: opening an infected repository in an AI coding tool would have harvested fresh tokens. A different contributor's token was used with the commit author metadata spoofed via the Git Data API."

Found this article interesting? Follow us on Google News, Twitter and LinkedIn to read more exclusive content we post.