Skip to content

Back to the catalog

SubQuery npm package (@subql/common) compromised with credential-stealing payload
stepsecurity.ioarticle

SubQuery npm package (@subql/common) compromised with credential-stealing payload

StepSecurity recaps a 48-hour (May 18-19, 2026) software supply-chain attack wave that hit every pipeline layer at once: the Nx Console VS Code extension (2.2M installs) stealing tokens from GitHub/npm/AWS/1Password, the trusted GitHub Action actions-cool/issues-helper hijacked via tag replacement, a trojanized Microsoft durabletask PyPI package pulled within a 35-minute discovery window, a self-replicating Shai-Hulud npm worm, and GitHub's own disclosure that ~3,800 internal source repos were exfiltrated. The piece argues traditional SCA/SAST/EDR/CNAPP tooling missed all of it because none monitor CI/CD runner runtime behavior (e.g., attackers reading /proc/pid/mem to extract secrets) or developer-machine IDE extensions, and ties the incidents to StepSecurity's Harden Runner, Dev Machine Guard, Compromised Actions Policy and Secure Registry controls.

TL;DR StepSecurity breaks down five simultaneous supply-chain compromises (Nx Console, actions-cool/issues-helper, durabletask, Shai-Hulud, and a GitHub internal-repo breach) that traditional SCA/SAST/EDR tools never saw because none watch CI/CD runtime or dev-machine IDE extensions.
Document

What it is

StepSecurity's own platform controls mapped against the five-incident wave (Nx Console VS Code extension, actions-cool/issues-helper GitHub Action, Microsoft durabletask PyPI package, the Shai-Hulud npm worm, and GitHub's internal repo exfiltration). The summary covers the incidents and the general argument; what it omits is the specific detection mechanisms and the concrete remediation checklist the vendor lays out.

How it works

Each incident exploited a different pipeline layer, and each is countered by a specific control described at the mechanism level:

  • Harden Runner — a runtime agent on GitHub Actions runners that monitors process behavior and enforces network egress allowlists. In block mode it drops connections to any non-allowlisted domain, stopping exfiltration even when a compromised Action (actions-cool) or the Shai-Hulud worm tries to read /proc/pid/mem and POST stolen secrets out.
  • Compromised Actions Policy — a pre-execution gate: once StepSecurity's Threat Center flags a compromised Action, the policy auto-cancels any workflow run referencing it org-wide, closing the gap between disclosure and individual teams patching workflow files.
  • Dev Machine Guard — inventories IDE extensions and installed npm/Python packages on developer laptops, letting a team instantly search whether an affected Nx Console version or a Shai-Hulud-targeted package is present — the layer that caught the vector that breached GitHub itself.
  • Secure Registry (Beta) — a proxy in front of npm/PyPI that enforces a cooldown period on freshly published versions, directly addressing the durabletask case where the malicious version was pulled within a 35-minute window of publication.
  • Package Search — scans default branches and open PRs for known-compromised package versions in lockfiles/manifests.
  • GitHub Checks — per-PR cooldown verification, pwn-request detection, and script-injection analysis.

Preconditions / Affected

Applies to orgs using GitHub Actions, npm/PyPI dependencies, and developer IDE extensions — i.e., essentially any modern CI/CD pipeline. Secure Registry specifically requires using JFrog or Google Artifact Registry as the upstream proxy target. Harden Runner's block mode (vs. audit mode) is what actually stops exfiltration; audit mode only flags it.

What to do

For existing StepSecurity customers, the post gives a six-item checklist:

  1. Confirm Threat Center notification channels are active.
  2. Ensure Dev Machine Guard coverage across all developer machines.
  3. Enable Compromised Actions Policy for automatic org-wide workflow blocking.
  4. Deploy Harden Runner on Actions workflows; switch sensitive workflows from audit to block mode.
  5. If on JFrog/Google Artifact Registry, configure Secure Registry as npm upstream with a cooldown policy.
  6. Enable GitHub Checks for cooldown enforcement, pwn-request detection, and script-injection analysis.

For non-customers: Harden Runner and Dev Machine Guard both have free tiers (Harden Runner free for open-source repos).

Caveats

This is vendor content: every named control is a StepSecurity product, and the "matrix" referenced (which control catches which incident) is described but not reproduced in the fetched text. No independent verification of detection claims is given — effectiveness figures (e.g., "minutes" between IOC discovery and automated blocking) are StepSecurity's own characterization.

Organisations named here

  • Shai-Hulud

Technologies named here

  • @subql/common
  • StepSecurity platform
  • Harden-Runner
  • Nx Console
  • GitHub Actions
  • Dev Machine Guard
  • Compromised Actions Policy
  • actions-cool/issues-helper
  • Trivy
  • Threat Center
  • Secure Registry
  • Checkmarx KICS
  • node-ipc
  • Package Search
  • axios
  • GitHub Checks
  • SCA tools
  • durabletask
  • SAST tools
  • GitHub
  • EDR agents
  • CNAPP platforms
  • VS Code
  • npm
  • PyPI
  • StepSecurity
  • Checkmarx

Techniques named here

  • Imposter commits in GitHub Actions
  • Credential-stealing payload via IDE extension
  • Self-replicating npm worm
  • Process memory reading for secrets extraction
  • WAV steganography
  • DNS tunneling
  • Dangling orphan commits for payload hosting
  • Pwn Request
  • Script injection

Threat actors named here

  • TeamPCP
  • Shai-Hulud worm