Mini Shai-Hulud Resurfaces (No CVE): GitHub Worm Re-Probe new repo after Floods 1,600 Repos Across 21 Compromised Accounts

Mini Shai-Hulud resurfaced on 19 June 2026: a hunt found 1,614 exfil repos across 21 compromised GitHub accounts. Detection, IOCs, and remediation inside

Executive Summary

Mini Shai-Hulud is a self-propagating supply chain worm in the broader Shai-Hulud lineage that harvests developer and CI secrets, then publishes the stolen material into freshly created public GitHub repositories carrying the description marker “A Mini Shai-Hulud has Appeared.” It was first tracked across npm and PyPI in May 2026 and attributed to TeamPCP. A scan run on 19 June 2026 shows the worm is active again rather than dormant.

The 19 June probe found 1,614 exfiltration repositories tied to 21 genuinely compromised GitHub accounts, all created under the same description marker and named with Dune-themed prefixes such as kralizec-, sardaukar-, fremen-, and harkonnen-. The worm does not need a software flaw to spread. It runs on stolen identity: a postinstall or workflow execution lifts an npm token or an OIDC-minted publish credential, the worm enumerates what that identity can reach, and it republishes itself or dumps secrets into new repos under the victim’s account. Every stage of this happens without a CVE, without a CVSS score, and without anything a scanner keyed to advisory feeds can see.

For defenders, the operational risk is twofold. First, any account on the victim list is a confirmed secret-exfiltration event, so credentials that ever touched those environments are in scope for rotation. Second, this is a forward-looking npm risk: several compromised GitHub identities also publish packages, and none of those packages are flagged yet. The window between identity compromise and package weaponization is the gap that matters, and the May lineage showed TeamPCP can pivot delivery inside 72 hours.

Check Live tracking dashboard at https://sha1hulud-phoenix.pplx.app 


TL;DR for Engineering Teams

LabelContent
What it isMini Shai-Hulud, a self-propagating supply chain worm (Shai-Hulud lineage, TeamPCP-attributed). No CVE assigned. No CVSS published.
Where it bitesnpm and GitHub. Compromised developer/CI identities publish exfil repos and can republish poisoned package versions. Persistence lands in .claude/ and .vscode/ config that survives npm uninstall.
Why it matters19 June 2026 hunt: 1,614 exfil repos across 21 compromised accounts, created under the marker “A Mini Shai-Hulud has Appeared.” Live re-probe, not historical residue.
Patch statusNo patch — this is identity compromise, not a code defect. Remediation is credential rotation, repo takedown, and persistence cleanup.
Immediate actionBlock the description marker in repo monitoring, rotate npm/GitHub/cloud tokens for any listed account, grep .claude/ and .vscode/ for injected hooks, and put the 21 accounts’ published packages under watch.
Monitor the malicious packages with: https://phxintel.security/malware.html  Prevent installation with Phoenix Security Blue Shield https://phxintel.security/firewall-management.html  

Vulnerability Overview

FieldValue
VendorN/A — package and identity-level supply chain campaign
Productnpm packages, GitHub accounts, AI coding tool config files
Vulnerability TypeSelf-propagating supply chain worm / credential exfiltration
CWECWE-506 (Embedded Malicious Code), CWE-522 (Insufficiently Protected Credentials), CWE-829 (Inclusion of Functionality from Untrusted Control Sphere)
CVSS ScoreNone published
CVENone assigned
Patch AvailableNo — remediation is rotation, takedown, and cleanup
Active ExploitationConfirmed — re-probe observed 19 June 2026

Protect yourself with the latest threat intelligence, get access to PHOENIX BLUE Today

Technical Anatomy (Root Cause + Exploit Mechanics)

Root Cause Analysis

Compromise account and credentials remain the root cause but there is no single vulnerable function here. The root cause is the trust model around publishing credentials and CI identity. The npm and GitHub ecosystems treat a valid token — whether a long-lived npm automation token, a GITHUB_TOKEN, or an OIDC JWT minted by a CI workflow — as sufficient proof of intent. The worm abuses that. Once code runs inside a developer or CI context, it reads whatever credential material is reachable and uses it exactly as the legitimate owner would. The publish that follows is cryptographically valid, and in the May lineage it carried genuine Sigstore provenance attestations. Provenance proves the artifact was built where it claims; it does not prove the build was honest.

The second structural failure is persistence through AI coding tool configuration. The worm writes into .claude/settings.json, .claude/ hook scripts, .vscode/tasks.json, and similar files. These are read and executed by developer tooling on routine actions, and they are not touched by npm uninstall. Removing the malicious package leaves the persistence in place.

Exploit Path — Three Steps

  1. Entry point — Execution lands in a developer or CI environment, either through a poisoned package install hook or through a workflow run on a compromised identity. No import of the package is required; install-time hook execution is enough.
  2. Vulnerability trigger — The worm enumerates reachable secrets: npm tokens, GITHUB_TOKEN, OIDC token request endpoints, cloud credentials, and on-disk .env and SSH material. It then uses the identity directly — minting an npm publish token via OIDC where federation is enabled, or reusing a stolen token where one exists.
  3. Execution impact — Two outputs. The worm republishes infected package versions under the now-controlled namespace to continue propagation, and it creates public GitHub repositories under the victim’s account holding the exfiltrated secrets, each tagged with the description “A Mini Shai-Hulud has Appeared.”

Campaign Phase Breakdown

  • Phase 1 — Initial foothold: Credential capture inside a developer or CI context, following the same playbook as the May 2026 TanStack-origin wave.
  • Phase 2 — Expansion: OIDC-minted or stolen npm tokens used to enumerate and republish across reachable namespaces; GitHub tokens used to write directly to branches.
  • Phase 3 — Ecosystem targeting: Mass creation of Dune-themed exfil repos under compromised accounts. The 19 June probe attributes the bulk of 1,614 repos to seven high-volume accounts.
  • Phase 4 — Persistence: Hook and config injection into .claude/ and .vscode/, which re-executes on developer tool invocation and survives package removal.

The 19 June 2026 Probe — What the Hunt Found

The hunt tool searched GitHub for the worm’s signature: the repository description string “A Mini Shai-Hulud has Appeared.” A raw pass returned 2,009 candidate repos across 142 accounts, mixing genuine victims with detection tooling and research repos that merely quote the marker string in a file. Filtering to the description-source signal only — the worm’s own exfil repos, not code or commit mentions — collapsed that to a clean set: 1,614 IOC repositories across 22 accounts, of which one (copyleftdev, running a detection tool named mini-shai-hulud-dragnet) is a confirmed false positive. The real victim count is 21.

The naming scheme is consistent across all victims. Repos combine a Dune-faction prefix with a Dune-object middle and a numeric suffix — kralizec-cogitor-256, sardaukar-thumper-839, fremen-navigator-289, harkonnen-phibian-466. The top theme prefixes by volume were kralizec (111), powindah (110), and sardaukar (109); the top middles were heighliner (113), phibian (112), and stillsuit (107). This is templated, automated repo generation, not hand-crafted naming.

New Compromised accounts

Compromised Accounts (description-source, 19 June 2026)

#GitHub AccountIOC ReposExample Repo
1nikra89300kralizec-cogitor-256
2tinin46300kralizec-melange-782
3daya0510299sardaukar-thumper-839
4gruposbftechrecruiter219prana-heighliner-75
5VanModers152powindah-phibian-166
6Shrenath1903148siridar-stillsuit-859
7ckarmy102kralizec-sietch-906
8piaoxue85530fedaykin-sietch-463
9crazyki1ler18prescient-phibian-831
10korvlad12315sayyadina-ghola-410
11onlybimal1710mentat-sietch-502
1216000rpm5sardaukar-phibian-947
13CloudMTABot4prana-melange-49
14AasifAtom3fremen-lasgun-728
15voicproducoes2tleilaxu-ornithopter-43
16Sadotib1sayyadina-thumper-241
17l3v1cs1fedaykin-fedaykin-545
18carminerusso901kanly-ghola-701
19WannaFIy1siridar-thumper-217
20doublek131harkonnen-melange-291
21tuming618-vision1kanly-ornithopter-262

The top seven accounts hold roughly 1,520 of the 1,614 repos. This concentration is consistent with a small number of high-value identities — likely CI service accounts or prolific maintainers — being looped repeatedly by the worm, while the long tail of single-repo accounts represents one-shot captures.

Similar tactic and techniques 

IOCs

Indicator TypeValue
Repo description markerA Mini Shai-Hulud has Appeared
Repo naming pattern{dune-faction}-{dune-object}-{int} (e.g. kralizec-cogitor-256)
Common prefixeskralizec, powindah, sardaukar, fedaykin, prescient, prana, fremen, harkonnen, mentat, ghola, kanly, gesserit
Common middlesheighliner, phibian, stillsuit, cogitor, melange, futar, slig, sandworm, fedaykin, lasgun, navigator
Persistence paths.claude/settings.json, .claude/ hook scripts, .vscode/tasks.json

Affected Versions

This wave is identity-level, not version-level. No new poisoned package versions were confirmed by the 19 June probe — the actionable artifact is the set of compromised accounts and their exfil repos. For continuity, the package inventory from the May 2026 Mini Shai-Hulud wave remains relevant for any environment that resolved dependencies during that window.

PackageVulnerable VersionsFixed VersionNotes
@opensearch-project/opensearch3.5.3, 3.6.2, 3.7.0, 3.8.0≤ 3.5.2May wave; ~1.3M weekly downloads
@tanstack/react-router1.169.5, 1.169.8≤ 1.169.4May wave origin namespace
@mistralai/mistralai2.2.2, 2.2.3, 2.2.4≤ 2.2.1May wave
guardrails-ai (PyPI)0.10.1≤ 0.10.0May wave; executes on import
Packages by 21 listed accountsNot yet flaggedN/AForward-looking risk — monitor, do not yet block

The 19 June hunt cross-referenced the 21 compromised accounts against the known compromised-package database and found zero matches. None of the npm packages published by these identities is currently flagged. The single npm link surfaced (copyleftdev-guthubcheck) belongs to the detection-tool false positive, not a victim. That clean result is not reassurance — it is the warning. These are compromised identities whose secrets are already exfiltrated, and the packages they publish are the most likely next delivery vehicle.


Exposure Analysis

EnvironmentRisk LevelReason
CI/CD pipelinesCriticalOIDC federation and stored npm tokens are the worm’s primary propagation fuel
npm publishing accountsCriticalA compromised maintainer identity can republish poisoned versions to all reachable namespaces
Developer workstationsHigh.env, SSH keys, and npm tokens harvested; .claude/ and .vscode/ persistence re-executes on tool use
Cloud workloadsHighHarvested cloud credentials enable lateral movement beyond the package ecosystem
Downstream consumersMediumExposure depends on whether a listed account’s packages get weaponized in a follow-on wave

Real-World Impact

The scale signal in this probe is the repo count, not download numbers. 1,614 exfil repositories created under a single description marker, concentrated in 21 accounts, on a single day’s scan, is evidence of an active automated propagation loop. Each repo represents a captured secret bundle published to the public internet under a victim’s name.

Realistic attack scenarios from this position:

  • Account takeover chaining: A compromised GitHub identity that also holds npm publish rights becomes a launch point for poisoning that maintainer’s packages — the exact mechanism that produced the May wave’s 170-package blast radius.
  • Cloud credential theft: Secrets harvested into exfil repos include cloud keys, enabling movement out of the dev/CI plane into production infrastructure.
  • Persistence beyond removal: Injection into AI coding tool config means the worm re-executes on routine developer actions even after the triggering package is uninstalled.
  • Downstream supply chain poisoning: The forward-looking risk — today’s compromised identity is tomorrow’s poisoned package, distributed to every consumer of that package.

Detection Guidance

Log Indicators

  • GitHub audit log: repository creation events with description exactly matching A Mini Shai-Hulud has Appeared.
  • Repository names matching the pattern {word}-{word}-{int} drawn from the Dune lexicon above, created in bulk under a single account in a short window.
  • npm publish events from CI runners minting fresh OIDC tokens outside expected release workflows.
  • Unexpected commits to .claude/ or .vscode/ paths, particularly those authored to mimic the Claude Code GitHub App identity.
  • Outbound traffic to decentralized messaging bootstrap nodes (Session network) from CI or developer hosts, consistent with the May lineage exfil channel.

Scanner References

  • Phoenix Security scanners — match the 21 compromised accounts and the exfil-repo IOC pattern against your maintainer and dependency inventory; flag any first-party or transitive package published by a listed identity.
  • SCA / SBOM tooling — resolve your full dependency tree and check maintainer attribution against the account list, not just package names.
  • GitHub dependency and secret scanning — enable across all repositories; alert on the description marker.
  • External attack surface management — identify which internet-facing services run packages maintained by the affected identities.

Verification Steps for Teams

  1. Search GitHub org audit logs for any repo created with the marker description, and for the Dune naming pattern.
  2. Cross-reference your dependency inventory against the 21 compromised accounts; list every direct and transitive package they maintain.
  3. Grep all repositories for injected .claude/ and .vscode/ hooks and config not authored by your team.
  4. Review SBOMs for transitive dependencies whose maintainer handle appears on the list.
  5. Audit CI runner logs for unexpected npm publish or OIDC token-request activity during June 2026.

Remediation Guidance

Immediate Actions

  1. Treat every credential reachable from a listed account’s environment as exposed. Rotate npm automation tokens, GITHUB_TOKEN and PATs, OIDC-federated publish trust, and any cloud keys (AWS access keys, role ARNs) that touched those contexts.
  2. Report and request takedown of exfil repositories under the marker description; do not clone them into internal infrastructure.
  3. Remove worm persistence explicitly. Delete injected files under .claude/ and .vscode/ — npm uninstall will not remove them. Inspect .claude/settings.json and .vscode/tasks.json for unauthorized hook entries.
  4. Add the 21 accounts and their published packages to a monitored watchlist so any new version triggers manual review before it resolves into a build.

Temporary Mitigations

  1. Block the description string A Mini Shai-Hulud has Appeared and the Dune naming pattern in repository monitoring and CI policy gates.
  2. Disable OIDC trusted-publishing federation on any CI workflow that does not strictly require it; require human-gated publish for high-value namespaces.
  3. Pin dependencies to known-good versions and enforce lockfile integrity; do not float to latest for any package maintained by a listed identity.
  4. Apply egress filtering on CI runners and developer hosts to constrain exfiltration over decentralized messaging channels.

There is no version to upgrade to here — the remediation is rotation, takedown, and persistence removal, not a patch.


Phoenix Security Recommendations

Mini Shai-Hulud is the structural case for behavioral, identity-aware supply chain detection rather than advisory-fed scanning. Every stage of this campaign produces no CVE, so a CVE-keyed scanner sees nothing across all 1,614 repos and 21 accounts.

  • Contextual deduplication — correlate the account-level IOC signal with package and repository findings across scanners into one prioritized backlog, so a compromised maintainer identity surfaces once with full context rather than as scattered alerts.
  • Reachability analysis — determine which packages maintained by the affected accounts are actually reachable in your runtime, separating the forward-looking watch items that matter from inventory noise.
  • Remediation campaigns — stand up a campaign for the 21 accounts, assign maintainer and repo owners, track token rotation and persistence cleanup to closure, and verify against runtime exposure.
  • Vulnerability ownership attribution — map every affected dependency to the responsible internal team automatically, so rotation and review land with the people who can act.
  • Attack surface management — identify internet-exposed services running packages tied to the compromised identities before a follow-on wave weaponizes them.

Phoenix Security correlates compromised maintainer identities with the packages they publish and the runtime workloads that consume them, then assigns remediation ownership — turning a 1,614-repo exfil event into an owned, trackable backlog before the next package goes live.


Protect yourself with the latest threat intelligence, get access to PHOENIX BLUE Today

External References

Mini Shai-Hulud hunter probe output, 19 June 2026 (internal Phoenix telemetry — clean run mini_shai_hulud_hunt_20260619_120153.json)

Phoenix Security Malware Analysis https://phxintel.security/malware.html 

Phoenix Security — original Mini Shai-Hulud campaign analysis (May 2026 TanStack-origin wave)

OpenSourceMalware.com — Mini Shai-Hulud campaign tag #mini-shai-hulud

socket.dev — supply chain attacks, Mini Shai-Hulud and Shai-Hulud lineage tracking

Phoenix Security editorial archive — phoenix.security/?s=sha1

phxintel.security — live IOC and malicious package intelligence feed

Francesco is an internationally renowned public speaker, with multiple interviews in high-profile publications (eg. Forbes), and an author of numerous books and articles, who utilises his platform to evangelize the importance of Cloud security and cutting-edge technologies on a global scale.

Discuss this blog with our community on Slack

Join our AppSec Phoenix community on Slack to discuss this blog and other news with our professional security team

From our Blog

A typosquatted npm dependency called easy-day-js — an exact metadata clone of the legitimate dayjs library — was injected across 144 @mastra packages in an 88-minute automated publishing window, reaching over 1.1 million weekly downloads. The second-stage payload is a cross-platform RAT that installs OS-level persistence on Windows, macOS, and Linux and targets LLM API keys, cloud credentials, and 166 cryptocurrency wallet extensions. No CVE was assigned; every CVE-based scanner was blind during active exploitation.
Sarah Mitchell
Phoenix Security has launched Blue Shield, a behavioural supply chain firewall that blocks malicious packages and AI agent skills at the point of install — across the developer workstation, CI/CD pipeline, and agent session. Built on the Phoenix Blue intelligence backbone, which has tracked 59 campaigns and 657 malicious package versions since June 2024 with zero CVEs assigned during active exploitation, Blue Shield’s free core tier is open today at phxintel.security
Francesco Cipollone
TeamPCP (UNC6780) released Miasma in June 2026: a self-spreading worm that injects itself into the SessionStart hooks of 13 AI coding tools including Claude Code, GitHub Copilot, and Gemini CLI. It forges SLSA provenance signatures to pass npm audit checks, uses GitHub itself as a command-and-control channel, and carries a DEADMAN_SWITCH that wipes developer machines if tokens are revoked before network isolation. Zero CVEs assigned. Every standard scanner returns clean.
Francesco Cipollone
The Miasma worm crossed two new boundaries in 48 hours: GitHub’s automated enforcement disabled 73 Microsoft repositories in 105 seconds after AI coding agent hooks were planted in Azure/durabletask, then 37 malicious PyPI wheels hit 19 packages with .pth startup hooks that steal credentials on every Python invocation. 448 total artifacts tracked. Zero CVEs assigned across the entire campaign.
Marcus Webb
Phoenix Security’s Malware Package Intelligence corpus documents 59 supply chain campaigns and 657 malicious package IOCs across npm, PyPI, VS Code, and AI agent tooling from June 2024 through June 2026. The first half of 2026 alone produced 4.5 times the package volume of all 2025 — driven by self-propagating worms, AI assistant config poisoning, and a compiled Rust implant with an eBPF rootkit. Every single campaign: zero CVEs assigned during active exploitation.
Francesco Cipollone
Contents
Derek

Derek Fisher

Head of product security at a global fintech

Derek Fisher – Head of product security at a global fintech. Speaker, instructor, and author in application security.

Derek is an award winning author of a children’s book series in cybersecurity as well as the author of “The Application Security Handbook.” He is a university instructor at Temple University where he teaches software development security to undergraduate and graduate students. He is a speaker on topics in the cybersecurity space and has led teams, large and small, at organizations in the healthcare and financial industries. He has built and matured information security teams as well as implemented organizational information security strategies to reduce the organizations risk.

Derek got his start in the hardware engineering space where he learned about designing circuits and building assemblies for commercial and military applications. He later pursued a computer science degree in order to advance a career in software development. This is where Derek was introduced to cybersecurity and soon caught the bug. He found a mentor to help him grow in cybersecurity and then pursued a graduate degree in the subject.

Since then Derek has worked in the product security space as an architect and leader. He has led teams to deliver more secure software in organizations from multiple industries. His focus has been to raise the security awareness of the engineering organization while maintaining a practice of secure code development, delivery, and operations.

In his role, Jeevan handles a range of tasks, from architecting security solutions to collaborating with Engineering Leadership to address security vulnerabilities at scale and embed security into the fabric of the organization.

Jeevan Singh

Jeevan Singh

Founder of Manicode Security

Jeevan Singh is the Director of Security Engineering at Rippling, with a background spanning various Engineering and Security leadership roles over the course of his career. He’s dedicated to the integration of security practices into software development, working to create a security-aware culture within organizations and imparting security best practices to the team.
In his role, Jeevan handles a range of tasks, from architecting security solutions to collaborating with Engineering Leadership to address security vulnerabilities at scale and embed security into the fabric of the organization.

James

James Berthoty

Founder of Latio Tech

James Berthoty has over ten years of experience across product and security domains. He founded Latio Tech to help companies find the right security tools for their needs without vendor bias.

christophe

Christophe Parisel

Senior Cloud Security Architect

Senior Cloud Security Architect

Chris

Chris Romeo

Co-Founder
Security Journey

Chris Romeo is a leading voice and thinker in application security, threat modeling, and security champions and the CEO of Devici and General Partner at Kerr Ventures. Chris hosts the award-winning “Application Security Podcast,” “The Security Table,” and “The Threat Modeling Podcast” and is a highly rated industry speaker and trainer, featured at the RSA Conference, the AppSec Village @ DefCon, OWASP Global AppSec, ISC2 Security Congress, InfoSec World and All Day DevOps. Chris founded Security Journey, a security education company, leading to an exit in 2022. Chris was the Chief Security Advocate at Cisco, spreading security knowledge through education and champion programs. Chris has twenty-six years of security experience, holding positions across the gamut, including application security, security engineering, incident response, and various Executive roles. Chris holds the CISSP and CSSLP certifications.

jim

Jim Manico

Founder of Manicode Security

Jim Manico is the founder of Manicode Security, where he trains software developers on secure coding and security engineering. Jim is also the founder of Brakeman Security, Inc. and an investor/advisor for Signal Sciences. He is the author of Iron-Clad Java: Building Secure Web Applications (McGraw-Hill), a frequent speaker on secure software practices, and a member of the JavaOne Rockstar speaker community. Jim is also a volunteer for and former board member of the OWASP foundation.

Join our Mailing list!

Get all the latest news, exclusive deals, and feature updates.

The IKIGAI concept
Protected By
Shield Security PRO