Poisoned Pipeline / Incidents / AS26
PhantomRaven hidden HTTP npm dependencies
npmCircleCIGit / GitHubGitLabGitLab CIJenkinsPyPI
CrowdStrike described PhantomRaven, an LLM-generated npm info-stealer.
The typosquat package looks like Hello-world; the malware is an HTTP
remote dependency that npm fetches at install and that the npm web UI
does not show. A preinstall hook then runs and harvests GitHub Actions,
GitLab, Jenkins, and CircleCI environment variables. PyPI's similar-name
policy stopped a Python twin; npm did not.
Mapped techniques
- T0129 Typosquatting
- T0108 Accounts in public registry
- T0151 Installation scripts
- T0140 Harvest tokens from environment variables
- T0193 Sensitive information in environment variables
supply-chain npm typosquat + remote HTTP dependency
The visible package is a typosquat; it is not where the payload lives.
Operator accounts published the typosquats and remote-dep hosts.
preinstall runs after npm fetches the hidden HTTP dependency.
Harvests CI env vars across GitHub Actions, GitLab, Jenkins, CircleCI.
CI secrets in the job environment were the collection target.
Framework gaps noted
- Hidden HTTP remote dependencies that the registry UI does not display are only implied by T0151.