Skip to content

Shai-Hulud

Self-propagating malware worm that infects npm packages, stealing developer credentials and tokens while spreading through open-source supply chains.

Known aliases

  • A Mini Shai-Hulud has Appeared
  • Sha1-Hulud
  • Shai-Hulud 2
  • Shai-Hulud 2.0
  • Shai-Hulud family
  • Shai-Hulud: Here We Go Again
  • Shai-Hulud infostealer
  • Shai-Hulud npm campaign
  • Shai-Hulud npm worm
  • Shai Hulud worm
  • Shai-Hulud worm

Current stories

buildOne report1 publisher

GhostAction's October workflow ran where September's mostly stalled, Socket reports

Two compromised maintainer accounts pushed a GhostAction workflow into 346 GitHub repositories on Oct. 8, according to Socket's research team. GitGuardian, which named the campaign, is still reviewing the wave against its own data.

Publishers:blog.gitguardian.com dev.to

Reality

Evidence62
Adoption
Not scored
Hype gap+8
Incentives
Not scored
Confidence60
buildConfirmed2 publishers

Tensorlake npm worm ships a service that runs rm -rf ~/ when its stolen GitHub token is revoked

Tensorlake's npm SDK 0.5.144 carried a Shai-Hulud worm on October 8 that steals GitHub and npm tokens, cloud keys and AI coding-tool configs. A dev.to write-up of StepSecurity's teardown says revoking the stolen GitHub token triggers an rm -rf ~/, so the service must go first.

Publishers:dev.to endorlabs.com

Reality

Evidence66
Adoption
Not scored
Hype gap+30
Incentives45
Confidence62
buildConfirmed4 publishers

In Tensorlake's npm SDK 0.5.144, a preinstall hook steals credentials before any sandbox runs

Tensorlake's npm SDK 0.5.144 runs a credential-stealing worm from a preinstall hook at install time, Socket reported. According to Socket's analysis, any secret reachable from a workstation or build runner that installed the release may be exposed.

Perspective Coverage

4 publishers
Builder
Builder 44%
Operator
Operator 50%
Investor
Investor 6%

Reality

Evidence74
Adoption25
Hype gap+10
Incentives35
Confidence72
securityOne report1 publisher

Unit 42 finds supply-chain malware fetching its C2 addresses from blockchain smart contracts

Unit 42 says supply-chain attackers have moved command-and-control into blockchain smart contracts, so one transaction can re-point an entire botnet or worm. Defenders' useful choke points are now developer machines, CI runners and the chain lookup itself.

Reality

Evidence55
Adoption45
Hype gap+15
Incentives45
Confidence55
securityConfirmed16 publishers

AFP sizes the Shai-Hulud syndicate's take at more than 500,000 credentials

Two men arrested in Australia this week are alleged TeamPCP members. The AFP estimate filed alongside the case puts the worm's take at more than 500,000 credentials and 300GB of data, and that scale makes token lifetime the live question.

Perspective Coverage

16 publishers
Builder
Builder 29%
Operator
Operator 56%
Investor
Investor 15%

Reality

Evidence62
Adoption68
Hype gap+30
Incentives58
Confidence70
securityOne report1 publisher

TeamPCP's package attacks reused the stolen-token techniques of S1ngularity and Shai-Hulud

Two TeamPCP-linked actors are under arrest after package compromises that ReversingLabs says caused a suspected hundreds of millions of dollars in damages. The waves since September 2025 began with a stolen publishing credential and reached victims through updates their own pipelines installed.

Reality

Evidence35
Adoption
Not scored
Hype gap+25
Incentives75
Confidence35
securityOne report1 publisher

A fake Twilio bug-bounty probe went up on npm eleven times on August 14

ReversingLabs found tw-pkgprobe-7731 claiming to be an authorized Twilio HackerOne research probe while it tried to exfiltrate data, and its 2026 count of malicious npm packages passed all of 2024 by the end of August.

Reality

Evidence60
Adoption25
Hype gap+15
Incentives78
Confidence55
buildOne report1 publisher

ChainDrop executes from a checked-in agent config the moment a coding session starts

GitGuardian says the ChainDrop worm reached 444 npm packages by planting a SessionStart hook in Claude Code and a folderOpen task in VS Code, and the publishing credential it steals is used to republish inside the same session.

Publishers:dev.to

Reality

Evidence45
Adoption55
Hype gap+22
Incentives80
Confidence42
scienceOne report1 publisher

Public GitHub took on 28.65 million hardcoded secrets across 1.94 billion commits in 2025

GitGuardian counted a 34 percent rise in new leaked secrets against 43 percent growth in commits, so the rate per commit slipped about six percent even as the raw total set the company's single-year record.

Publishers:blog.gitguardian.com

Reality

Evidence42
Adoption66
Hype gap+28
Incentives80
Confidence55
securityOne report1 publisher

Google clocks TeamPCP standing up a mass credential-harvesting campaign in under six hours

GTIG's 2026 accounting traces one crew from package-registry compromises on PyPI, npm and Docker Hub to agent instructions that planned and ran the campaign, then out to public malware releases anyone can reuse.

Publishers:securityweek.com

Reality

Evidence48
Adoption45
Hype gap+22
Incentives72
Confidence45
securityOne report1 publisher

AFP, FBI and Western Australia Police arrest two men over the TeamPCP npm attacks

Aikido says the pair, both in their early 20s, ran TeamPCP's npm supply chain campaigns with a worm they cloned from Shai-Hulud. Whoever wrote the original is still unidentified, and the code is still published.

Publishers:aikido.dev

Reality

Evidence41
Adoption44
Hype gap−6
Incentives63
Confidence45
securityOne report1 publisher

Shai-Hulud's third wave printed SAP's npm token straight into a workflow log

Four core SAP build packages shipped an identical 11.6MB credential stealer. Because npm trusted the whole cap-js repository rather than one branch, a commit pushed to an unused branch was enough to publish them.

Publishers:stepsecurity.io

Reality

Evidence60
Adoption38
Hype gap+15
Incentives78
Confidence55
securityConfirmed3 publishers

Attacker agents ran a mass credential harvest from inside the victim's own cloud in six hours

Mandiant traced the Q2 2026 campaign to an AI coding chatbot, one prompt and a set of agent instructions that ran the scanning pipeline, fixed its own errors and rotated IPs with nobody at the keyboard.

Perspective Coverage

3 publishers
Builder
Builder 30%
Operator
Operator 57%
Investor
Investor 13%

Reality

Evidence58
Adoption62
Hype gap+24
Incentives70
Confidence66
buildOne report1 publisher

A pull request comment triggered a trusted workflow that published ten malicious npm versions

The provenance on @7nohe/openapi-react-query-codegen was accurate about every question it was built to answer, which is why the Docker Security Dispatch reaches instead for a five-day resolution cooldown that npm ci does not apply.

Publishers:dev.to

Reality

Evidence47
Adoption
Not scored
Hype gap+12
Incentives72
Confidence55
securityOne report1 publisher

GitGuardian finds a Shai-Hulud variant sweeping 469 credential paths across CI/CD and AI configs

The count of places this worm looks for secrets more than doubled between builds, and the additions sit in CI/CD and developer tooling, which is where the standing tokens that make a supply chain attack portable actually live.

Reality

Evidence44
Adoption
Not scored
Hype gap+26
Incentives78
Confidence52
securityOne report1 publisher

A free Artifactory plugin can hold npm and PyPI versions until they age in public

Shai-Hulud is on its fourth iteration. Trivy, Axios and LiteLLM have all shipped compromised releases. ReversingLabs is giving away a plugin that checks every package request against a reputation index inside Artifactory itself.

Reality

Evidence38
Adoption8
Hype gap+22
Incentives85
Confidence45
buildOne report1 publisher

56 build-pipeline attacks, one vendor's alert queue, and the February jump nobody can attribute yet

StepSecurity's first annual report logs 56 confirmed supply chain compromises and says plainly that these are its own alerts. The February change is the finding; explaining it is the hard part.

Publishers:runtimewire.com

Reality

Evidence46
Adoption42
Hype gap+16
Incentives79
Confidence51
securityOne report1 publisher

Reading OIDC tokens out of runner memory: ChainDrop and the poisoned build

Unit 42 says a worm hidden in more than 400 npm packages read GitHub Actions runner memory for temporary OIDC tokens. An SBOM generated at the end of the build would not have seen any of it.

Reality

Evidence55
Adoption62
Hype gap+18
Incentives80
Confidence52
securityOne report1 publisher

Shai-Hulud's fourth wave shipped with valid provenance, and that is the finding

The poisoned keyv releases were signed by GitHub Actions and the attestation was accurate. It certified a build whose source had already been taken over.

Publishers:scworld.com

Reality

Evidence34
Adoption46
Hype gap+18
Incentives76
Confidence41

Earlier coverage