Large, coordinated software supply‑chain attack campaign and SOC Incident Response



Mini‑Shai Hulud refers to a large, coordinated software supply‑chain attack campaign attributed to the threat group TeamPCP, targeting major open‑source ecosystems including npm, PyPI, and Composer. It is a successor and scaled‑down variant of the earlier Shai‑Hulud worm, but still highly capable and dangerous.

Below is a clear, structured breakdown of what Mini‑Shai Hulud is, how it works, who it hit, and why it matters — all grounded in the latest reporting.

 What Mini‑Shai Hulud is

Mini‑Shai Hulud is a credential‑stealing, self‑propagating supply‑chain malware inserted into legitimate open‑source packages. It infects developer environments and then uses stolen tokens to publish malicious versions of any packages the victim has write access to.

It is part of a broader trend of automated supply‑chain attacks where attackers compromise CI/CD pipelines, GitHub Actions, and package registries to spread malware at scale.

 Who was affected

Across multiple registries, the campaign compromised:

  • 42 TanStack packages (React Router, Query, etc.)

  • 65 UiPath packages

  • Mistral AI PyPI packages

  • OpenSearch JavaScript client

  • Guardrails AI

  • Hundreds of additional npm packages, including antv visualization libraries heavily used in blockchain tooling

In total, researchers tracked over 1,000 compromised versions across 500+ packages.

 How the malware works

Mini‑Shai Hulud is engineered to:

  • Steal developer credentials (GitHub, npm, PyPI, cloud keys, CI/CD secrets)

  • Exfiltrate data to attacker‑controlled domains such as filev2.getsession[.]org

  • Propagate automatically by using stolen tokens to publish malicious package versions

  • Install persistence inside IDEs like VS Code and Claude Code

  • Inject malicious GitHub Actions workflows to serialize and exfiltrate repository secrets

Some variants also:

  • Avoid infecting Russian‑language systems

  • Run a daemon that polls GitHub every minute to check token revocation

 How the attackers compromised the packages

TeamPCP exploited multiple weaknesses in GitHub Actions and CI/CD pipelines, including:

  • pull_request_target “Pwn Request” misconfiguration

  • GitHub Actions cache poisoning

  • Runtime extraction of OIDC tokens from runner memory

In some cases, they used orphaned commits to trigger automated release pipelines and publish malicious artifacts with valid provenance signatures, making the malware appear legitimate.

 Example: TanStack compromise

The TanStack ecosystem was hit particularly hard:

  • 84 malicious versions across 42 packages

  • Malware hidden in a file named router_init.js

  • Optional dependency pointing to a GitHub repo with a prepare hook that executed the payload via Bun

  • Assigned CVE‑2026‑45321, CVSS 9.6 (critical)

 Why this matters

Mini‑Shai Hulud demonstrates:

  • CI/CD pipelines are now prime attack surfaces

  • Valid provenance signatures are not enough if the pipeline itself is compromised

  • Open‑source ecosystems remain highly vulnerable to automated, large‑scale supply‑chain attacks

Because these packages are downloaded millions of times per week, the blast radius is enormous.

 What developers should do

If you installed any affected packages during the attack windows:

  1. Rotate all credentials (GitHub, npm, PyPI, cloud providers).

  2. Audit your repositories for unauthorized commits or workflows.

  3. Check for persistence in VS Code or Claude Code.

  4. Rebuild CI/CD secrets and review GitHub Actions permissions.

SOC‑Ready Incident Response Checklist: Mini‑Shai Hulud / Supply‑Chain Compromise

1. Immediate Triage (0–30 minutes)

  • Activate incident bridge and assign roles (IR lead, comms, forensics, cloud lead).

  • Identify whether any affected packages were installed in the last 30 days.

  • Freeze all CI/CD pipelines, GitHub Actions, and automated publishing workflows.

  • Disable GitHub OIDC tokens, npm tokens, PyPI tokens, and any PATs with package‑publish rights.

  • Block known C2 domains (e.g., getsession[.]org variants) at firewall and DNS layers.

  • Snapshot impacted systems (developer workstations, CI runners, build servers).

2. Credential & Access Containment (30–90 minutes)

  • Force‑rotate all developer credentials:

    • GitHub PATs

    • npm / PyPI / Composer tokens

    • Cloud provider keys (AWS, Azure, GCP)

    • SSH keys

  • Revoke all GitHub Actions OIDC trust relationships temporarily.

  • Disable or quarantine service accounts used for publishing packages.

  • Audit GitHub org for:

    • Unauthorized OAuth apps

    • Suspicious PATs

    • New deploy keys

    • New GitHub Apps

3. Developer Workstation Forensics

Mini‑Shai Hulud often installs persistence in IDEs.

  • Inspect VS Code and Claude Code extensions directories for unknown modules.

  • Search for:

    • router_init.js

    • bun‑executed payloads

    • Obfuscated JS in node_modules/.cache

  • Check shell profiles (.bashrc, .zshrc, PowerShell profile) for injected commands.

  • Review browser credential stores for unauthorized access.

  • Run memory capture on any workstation that published packages recently.

4. Repository & CI/CD Forensics

  • Review all repositories with publish permissions.

  • Identify unauthorized:

    • Commits

    • Tags

    • Releases

    • GitHub Actions workflow changes

  • Look for:

    • pull_request_target misuse

    • Cache poisoning

    • Suspicious workflow artifacts

  • Validate provenance signatures — but do not trust them alone (pipeline compromise bypasses provenance).

5. Package Registry Audit

  • Enumerate all packages your org publishes to:

    • npm

    • PyPI

    • Composer

    • Internal registries

  • Check for:

    • Unauthorized versions

    • Modified tarballs

    • Unexpected dependencies

    • New maintainers or collaborators

  • Yank or deprecate any compromised versions immediately.

6. Network & Host Indicators

  • Block outbound traffic to known exfiltration endpoints.

  • Search logs for:

    • Repeated GitHub API calls from unusual IPs

    • npm or PyPI login attempts from foreign regions

    • Developer machines contacting unknown domains

  • Review EDR alerts for:

    • Node.js spawning network connections

    • Bun runtime execution

    • Suspicious PowerShell or bash activity

7. Eradication

  • Remove malicious packages from all systems.

  • Rebuild developer workstations from golden images if any persistence is found.

  • Recreate CI/CD runners from clean templates.

  • Re‑establish OIDC trust relationships with strict conditions:

    • Least privilege

    • Environment‑bound

    • No wildcard audiences

8. Recovery

  • Re‑publish clean versions of any affected packages.

  • Re‑enable CI/CD pipelines with:

    • Mandatory code review

    • Mandatory provenance

    • No pull_request_target unless absolutely required

  • Notify downstream consumers with:

    • Impact window

    • Affected versions

    • Required remediation steps

9. Post‑Incident Actions

  • Conduct a full root‑cause analysis.

  • Update secure‑publishing SOPs.

  • Implement:

    • Sigstore keyless signing

    • GitHub Actions hardened runners

    • Registry‑scoped tokens

    • Mandatory MFA for all developers

  • Schedule a red‑team simulation of CI/CD compromise.


Comments

Popular posts from this blog

Entire List Leaked for Canvas Ransomware Attack

WSUS CVE-2025-59287 Mitigation

Cloud Infrastructures are Having a Bad Week

CVE-2025-58034 Fortinet Warnings and Mitigation

Broadcom is dismantling of VMware Cloud Service Providers (VCSPs)

FBI Seizes RAMP Cybercrime Forum

CodeRED emergency alert system is currently down across many regions!

Notepad++ update service was compromised

SitusAMC Breached!

Cyber Monday Fraud Alert