Poisoned Pipeline

Poisoned Pipeline / Incidents / AS26

AS26 · 2026-09

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

supply-chain npm typosquat + remote HTTP dependency

T0129 · Initial Access · Typosquatting

The visible package is a typosquat; it is not where the payload lives.

T0108 · Resource Development · Accounts in public registry

Operator accounts published the typosquats and remote-dep hosts.

T0151 · Execution · Installation scripts

preinstall runs after npm fetches the hidden HTTP dependency.

T0140 · Credential Access · Harvest tokens from environment variables

Harvests CI env vars across GitHub Actions, GitLab, Jenkins, CircleCI.

T0193 · Collection · Sensitive information in environment variables

CI secrets in the job environment were the collection target.

Framework gaps noted

Sources