
The OpenSourceMalware Show #8
Episode 8 of The OpenSourceMalware Show covers the Miasma worm (built on TeamPCP's open-sourced Mini Shai-Hulud) taking down 73 Microsoft GitHub repositories, including the Azure Functions org, in 105 seconds on June 5th, traced back to a May 19th Durable Task repo credential compromise. It also discusses VS Code's new two-hour third-party extension auto-update cooldown (contrasted with the Nx Console/Open VSX incident where Microsoft's Marketplace notification, not detection, caught the malware), npm v12's plan to disable install lifecycle scripts, direct Git dependencies, and remote tarball dependencies by default starting July, and a breakdown of package firewall designs (simple alias-based interceptors vs. daemon/proxy-based tools) including their bypass weaknesses and reliance on OSV/GHSA data.
What it is
Episode 8 of the OpenSourceMalware Show (recorded June 11) walks through four supply-chain items. Beyond the incident recap, the reusable engineering content is the comparison of package firewalls and the practical caveats on npm v12's defaults and the VS Code extension cooldown.
How it works
Package firewalls are a proactive endpoint control that blocks installation of known/suspected malicious packages before they reach a pipeline — distinct from EDR, which only detects after execution. Two categories:
- Alias-based: intercepts package-manager calls at install time. Simple, but bypassed by invoking the package manager's absolute path directly.
- Daemon-based: continuously proxies outbound calls to registries. Stronger coverage, but adds latency and complexity.
Both lean on OSV and GHSA as data sources, and both have coverage gaps. Tools that cache malicious-package lists locally can miss account-takeover events only hours old — data freshness is a real differentiator.
npm v12 will disable install lifecycle scripts (pre/post/install), direct Git dependencies, and remote tarball dependencies — all three together, by default. These are the mechanisms malware uses to execute at install time. Because this is a package-manager change, not a registry change, protection only applies once each workstation and CI runner upgrades to npm 12.
Preconditions / Affected
- The VS Code two-hour auto-update cooldown applies only to the Microsoft Marketplace, not OpenVSX (run separately by the Eclipse Foundation, with no equivalent proactive scanning or notification). The NX Console compromise was caught via a Marketplace email, not Microsoft detection; OpenVSX was pulled only after NX manually checked.
- Whether a package firewall fits depends on whether you already run an internal registry, how you manage endpoint policy, and how easily bypass is possible in your environment.
What to do
- If evaluating a package firewall, probe data freshness (how fast the malicious-package list updates for hours-old ATOs) and bypass difficulty (alias tools fall to absolute-path invocation).
- Don't rely on the VS Code cooldown for OpenVSX-sourced extensions; the two-hour window is also far shorter than the 3–7 day windows practitioners commonly request. Track the
minimumReleaseAgeextension setting (listed in resources). - Expect npm v12's protections to take years to matter in practice, given per-endpoint upgrade adoption, and plan for breakage in packages relying on install scripts (e.g. native builds via node-gyp).
Caveats
As of the episode date, Microsoft had issued no official statement on the 73-repo takedown. Paul notes an unresolved wrinkle: whoever open-sourced Miasma used an account showing no signs of compromise — unlike TeamPCP's MiniShai Hulud release — and is still investigating.
Organisations named here
- Durable Task
- GlassMoon
Technologies named here
- VS Code extension auto-update cooldown
- Microsoft GitHub repositories
- npm v12
- Durable Task repository
- Package firewalls
- Visual Studio Code
- NPQ
- Nx Console VS Code extension
- Package Ward
- Open VSX
- npm
- OSV
- GitHub Security Advisories
- OSM feeds
- EDR
- VS Code
- GitHub Actions
- node-gyp
- Nx Console
- StepSecurity
- Azure Functions
Techniques named here
- Install lifecycle script abuse
- Credential theft and persistence for later mass compromise
- Zero-input distribution via public code hosting
- Alias-based package manager interception
- Daemon/proxy-based outbound call inspection
Threat actors named here
- Miasma worm
- TeamPCP
- North Korea
- Mini Shai-Hulud
- PolinRider
Related in Supply Chain


