Skip to main content
Meet us at Black Hat USA 2026— Las Vegas, August 1–6Book a Meeting
Mallory
Back to malware
MalwareRansomwareUsed by 3 actorsExploits 1 CVE

mini Shai-Hulud

Also known asmini_shai_hulud_worm

Mini Shai-Hulud is a self-replicating software supply-chain malware family and open-source malware framework associated with the TeamPCP threat actor. Public reporting describes it as a worm and credential stealer that compromises developer and maintainer accounts, then propagates by publishing trojanized packages and abusing trusted developer workflows across ecosystems including npm and PyPI. TeamPCP publicly released the Mini Shai-Hulud toolkit/source code in 2026, after which multiple derivative and copycat campaigns were reported, including Miasma and Hades.

Across reporting, Mini Shai-Hulud and its descendants target developer workstations, CI/CD environments, GitHub repositories, GitHub Actions, package registries, and trusted publishing pipelines. The malware family is used to harvest secrets such as package registry tokens, GitHub tokens, SSH keys, cloud credentials, Kubernetes configurations, CI/CD secrets, and other developer credentials. Reporting also states that later variants expanded collection to cloud identities in Azure and GCP and targeted AI coding tool settings and repository configuration files.

Observed tradecraft linked to the Mini Shai-Hulud lineage includes malicious npm and PyPI packages, install-time execution via preinstall scripts and binding.gyp/node-gyp abuse, Bun-based JavaScript payload staging, obfuscated JavaScript loaders, GitHub dead-drop or exfiltration infrastructure, GitHub Actions secret theft, and direct source-repository compromise designed to trigger when repositories are opened in IDEs or AI coding assistants. Hades, a PyPI-focused variant, used .pth startup hooks, compiled .abi.so extensions, and Bun-delivered JavaScript stealers. Miasma, described as an evolved Mini Shai-Hulud variant, was reported in compromises affecting Red Hat npm packages, Microsoft repositories, LeoPlatform/RStreams npm packages, and a Go module tied to Verana Blockchain.

The family has been linked to large-scale package compromise activity, with reporting stating that Mini Shai-Hulud infected hundreds of open-source packages across multiple registries and that TeamPCP compromised more than 1,000 packages overall. High-confidence indicators and markers mentioned in reporting for related variants include public GitHub repository descriptions such as "Miasma: The Spreading Blight" and "Hades - The End for the Damned," workflow names such as "Run Copilot," and token-relay/dead-drop strings including "RevokeAndItGoesKaboom," "DontRevokeOrItGoesBoom," "TheBeautifulSandsOfTime," and "firedalazer." Attribution of some later campaigns remains uncertain because the Mini Shai-Hulud toolkit was publicly released and may be reused by copycats.

Share:
For your environment

Hunt this family in your stack

Mallory pivots from this family to the IOCs, detections, and named campaigns that touch your stack, and pages you when something new lands.

EXPLOITED CVES

Vulnerabilities exploited

1 CVE Mallory has correlated with this family across public research and vendor advisories. Each row links to the full Mallory page for that vulnerability.

1 CVES
CVE-2026-45321TanStack GitHub Actions Trusted Publisher Supply Chain CompromiseExploited in the wild

On 2026-05-27, CISA added three vulnerabilities to the KEV catalog, including CVE-2026-45321 (the TanStack / Mini Shai-Hulud tracking identifier) ... Treat the 2026-06-10 CISA remediation deadline for CVE-2026-45321 and CVE-2026-48027 as binding. | beginning 2026-06-01, a credential-stealing worm that Wiz named "Miasma" compromised dozens of @redhat-cloud-services packages... Vendors trace the malware to the TeamPCP lineage but now explicitly caution that a copycat using the public toolkit cannot be ruled out.

via sans iscisc.sans.edu
THREAT ACTORS

Groups observed using it

3 distinct threat actors attributed by public researchers. Open in Mallory to see the full evidence chain and overlapping campaigns.

View more details
TeamPCP

Additionally, the group's objectives have grown as they have spread the use of Mini Shai-Hulud, a self-replicating malware strain that infected hundreds of open-source packages across multiple registries, and was then publicized to encourage imitations.

via cysecurity newscysecurity.news
TeamPCP

We have seen this in the past when Team PCP open sourced the Mini Shai-Hulud payload... We have been tracking TeamPCP, Mini Shai-Hulu, Miasma and other related campaigns.

via safedep blogsafedep.io
cipherforce

TanStack npm packages compromised: inside the Mini Shai-Hulud supply chain attack ... The TanStack attack is not an isolated incident. It is the latest wave in a series of npm supply chain attacks using the Shai-Hulud worm toolchain.

via snyk blogsnyk.io
MITRE ATT&CK

Techniques & procedures

25 distinct techniques documented for this family, organized by ATT&CK tactic.

Resource Development

1 technique
T1583.001DomainsEvidence1

The information is then uploaded to a public GitHub repository with description "Alright Lets See If This Works."

Initial Access

7 techniques
T1078Valid AccountsEvidence4

If a simonecorsi-controlled workflow executed the compromised action with npm publishing credentials, GitHub tokens, or deployment permissions available to the runner, the attacker could have gained the access needed to publish malicious @immobiliarelabs package versions or trigger follow-on GitHub Actions activity.

T1078.004Cloud AccountsEvidence1

The threat group has consistently evolved its tactics, developing payloads in JavaScript and Python while spreading from local files to Kubernetes application programming interfaces and bundled software development kits.

T1195Supply Chain CompromiseEvidence10

This appears to be a continuation of the activity we reported yesterday involving LeoPlatform and RStreams npm packages, GitHub Actions workflow abuse, AI-agent persistence, and the Verana Go module/source-repository compromise. The new ImmobiliareLabs activity follows the same broader campaign pattern: compromise trusted developer infrastructure, publish malicious package versions...

T1195.001Compromise Software Dependencies and Development ToolsEvidence4

The malicious releases were published in a tight window on June 26, 2026... Multiple historical versions were republished with malicious artifacts, suggesting the threat actor attempted to maximize exposure across users pinned to older major versions.

T1195.002Compromise Software Supply ChainEvidence2

Nx Console 18.95.0 — IDE Distribution Vector ... publish the malicious extension. ... IDE extensions = locally high-privilege code

T1195.003Compromise Hardware Supply ChainEvidence1

Through compromise of CI runners, TeamPCP effectively converted trusted software distribution channels into malware delivery channels by compromising automated systems that build, test, and publish software.

T1199Trusted RelationshipEvidence1

One additional lead points to the compromised codfish/semantic-release-action as a possible upstream access path... downstream workflows that referenced those tags to execute attacker-controlled code inside GitHub Actions runners.

Execution

2 techniques
T1059Command and Scripting InterpreterEvidence1

prepare: bun run tanstack_runner.js && exit 1 ... preinstall: bun run index.js ... downloading and executing rope.pyz / /tmp/managed.pyz .

T1059.007JavaScriptEvidence1

The malicious tarball adds a root-level index.js that decrypts and executes a hidden payload, bootstraps Bun if needed, and runs a second-stage script.

Persistence

5 techniques
T1078Valid AccountsEvidence4

If a simonecorsi-controlled workflow executed the compromised action with npm publishing credentials, GitHub tokens, or deployment permissions available to the runner, the attacker could have gained the access needed to publish malicious @immobiliarelabs package versions or trigger follow-on GitHub Actions activity.

T1078.004Cloud AccountsEvidence1

The threat group has consistently evolved its tactics, developing payloads in JavaScript and Python while spreading from local files to Kubernetes application programming interfaces and bundled software development kits.

T1136Create AccountEvidence1

GitHub tokens can then be used to create repositories, upload encrypted data, modify workflows, poison source repositories, or prepare additional propagation paths. GitHub repository activity from services-admin-pearhealthlabs shows hundreds of public repositories with randomized names...

T1546Event Triggered ExecutionEvidence1

A public run in immobiliare/backstage-plugin-gitlab shows a workflow named Dependabot Updates, triggered via deployment on June 26, 2026... The workflow view shows release.yml configured with on: deployment.

T1556Modify Authentication ProcessEvidence1

includes Sigstore Fulcio/Rekor logic, enabling forged downstream npm provenance.

Privilege Escalation

4 techniques
T1055Process InjectionEvidence2

short-lived OIDC tokens were extracted from the memory of the Runner.Worker process... This attack shares the same TTPs as the 5/19 @antv wave: kitty-monitor, firedalazer, and extraction of Actions secrets from Runner /proc/*/mem .

T1078Valid AccountsEvidence4

If a simonecorsi-controlled workflow executed the compromised action with npm publishing credentials, GitHub tokens, or deployment permissions available to the runner, the attacker could have gained the access needed to publish malicious @immobiliarelabs package versions or trigger follow-on GitHub Actions activity.

T1078.004Cloud AccountsEvidence1

The threat group has consistently evolved its tactics, developing payloads in JavaScript and Python while spreading from local files to Kubernetes application programming interfaces and bundled software development kits.

T1546Event Triggered ExecutionEvidence1

A public run in immobiliare/backstage-plugin-gitlab shows a workflow named Dependabot Updates, triggered via deployment on June 26, 2026... The workflow view shows release.yml configured with on: deployment.

Stealth

4 techniques
T1027Obfuscated Files or InformationEvidence5

Root index.js is a single-line Caesar-shift loader followed by AES-128-GCM decryption and multi-stage payload delivery.

T1055Process InjectionEvidence2

short-lived OIDC tokens were extracted from the memory of the Runner.Worker process... This attack shares the same TTPs as the 5/19 @antv wave: kitty-monitor, firedalazer, and extraction of Actions secrets from Runner /proc/*/mem .

T1078Valid AccountsEvidence4

If a simonecorsi-controlled workflow executed the compromised action with npm publishing credentials, GitHub tokens, or deployment permissions available to the runner, the attacker could have gained the access needed to publish malicious @immobiliarelabs package versions or trigger follow-on GitHub Actions activity.

T1078.004Cloud AccountsEvidence1

The threat group has consistently evolved its tactics, developing payloads in JavaScript and Python while spreading from local files to Kubernetes application programming interfaces and bundled software development kits.

Defense Impairment

2 techniques
T1553Subvert Trust ControlsEvidence1

A malicious cache of approximately 1.1GB was written into the same pnpm store cache key used by release.yml (the cache scope was shared between pull_request_target and main branch pushes; permissions: contents: read could not prevent cache post-job writes).

T1556Modify Authentication ProcessEvidence1

includes Sigstore Fulcio/Rekor logic, enabling forged downstream npm provenance.

Credential Access

5 techniques
T1528Steal Application Access TokenEvidence2

StepSecurity also reported that the payload targeted GitHub OIDC tokens, GitHub personal access tokens, and CI/CD secrets... Exfiltrates stolen secrets via the GitHub API to attacker-controlled repositories.

T1539Steal Web Session CookieEvidence1

An Nx developer was compromised through the TanStack-related supply chain attack, resulting in the leakage of GitHub CLI (gh) credentials; ... harvesting GitHub / npm / AWS / Vault / K8s / 1Password / Claude Code configurations, etc.

T1552Unsecured CredentialsEvidence1

Payload steals developer and CI/CD secrets: .env files, npm/PyPI/GitHub/Slack/Twilio/AWS/Azure/GCP/Vault tokens, SSH keys, Docker credentials, Kubernetes configs.

T1556Modify Authentication ProcessEvidence1

includes Sigstore Fulcio/Rekor logic, enabling forged downstream npm provenance.

T1649Steal or Forge Authentication CertificatesEvidence1

The end goal of the campaign, as before, is to harvest developer or maintainer credentials and weaponize the stolen data to spread across package registries, repositories, and trusted developer workflows.

Lateral Movement

1 technique
T1080Taint Shared ContentEvidence1

The Register has been covering the story of the Shai-Hulud JavaScript worm for months. We introduced this self-propagating worm in September.

Collection

1 technique
T1119Automated CollectionEvidence2

The malware ... drops a workflow named "Run Copilot" to capture CI/CD environment secrets from the runner memory.

Command and Control

1 technique
T1105Ingress Tool TransferEvidence1

Third-stage payload runs under Bun v1.3.13, downloads if absent, and executes the final malware.

Exfiltration

2 techniques
T1048Exfiltration Over Alternative ProtocolEvidence1

Exfiltration: HTTPS + GitHub API + DNS

T1567Exfiltration Over Web ServiceEvidence3

Exfiltrates stolen secrets via the GitHub API to attacker-controlled repositories.

INDICATORS OF COMPROMISE

IOCs tracked for this family

170 indicators attributed across vendor reports, sandbox runs, and researcher write-ups. Full values are available in Mallory.

View more in app
Network
30 tracked

IPs, domains, and DNS infrastructure linked to this family.

Hashes
112 tracked

File hashes (MD5, SHA-1, SHA-256) from samples and reports.

Other
28 tracked

Other indicator types observed in public reporting.

TypeValueLatest sighting
hash.sha256●●●●●●●●●●●●View more in app1 day ago
domain●●●●●●●●●●●●View more in app1 day ago
hash.sha256●●●●●●●●●●●●View more in app1 day ago
ip.v4●●●●●●●●●●●●View more in app1 day ago
uri●●●●●●●●●●●●View more in app2 days ago
uri●●●●●●●●●●●●View more in app2 days ago
What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets match these IOCs, which detections are missing, which campaigns to expect next, and what to do in the next 30 minutes.
IOC matching170

Match every observed IP, domain, and hash against your live telemetry.

Threat actor attribution3

Named campaigns wielding this family, with evidence pinned to each claim.

Exploited vulnerabilities1

CVEs this family uses for access and lateral movement.

Detection signatures

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

MITRE ATT&CK mapping25

Every documented technique, ranked by evidence weight.

Researcher chatter

Reddit, Mastodon, and CTI community discussion around this family.