A highly sophisticated software supply chain attack, named Mini Shai-Hulud, has been uncovered, impacting over 170 packages across the NPM and PyPI open-source ecosystems. The campaign, attributed to the TeamPCP threat group, successfully injected credential-stealing malware into the build processes of popular projects, including TanStack, Mistral AI, and UiPath. The attackers chained multiple advanced techniques, including the abuse of GitHub Actions CI/CD pipelines and cache poisoning. Most alarmingly, they were able to get their malicious packages signed with valid SLSA (Supply-chain Levels for Software Artifacts) provenance signatures by hijacking the legitimate build process. This attack represents a significant evolution in supply chain threats, undermining cryptographic trust mechanisms designed to prevent such attacks.
pull_request_target trigger, combined with cache poisoning across repository forks.The attack chain was complex and demonstrates a deep understanding of modern CI/CD security weaknesses:
pull_request_target event, which runs with access to the base repository's secrets, even for pull requests from forks.pull_request_target abuse with cache poisoning (T1574.013 - Ptrace System Calls - conceptually similar cache abuse). By manipulating the build cache in their forked repository's pull request, they could inject malicious commands and code that would be executed by the trusted CI/CD pipeline of the target project.T1611 - Valid Accounts: Cloud Accounts).postinstall scripts) and began harvesting sensitive information from the developer's environment.T1048 - Exfiltration Over Alternative Protocol).T1105 - Ingress Tool Transfer).The Mini Shai-Hulud campaign has severe implications for the open-source community:
No specific Indicators of Compromise (IPs, domains, hashes) were mentioned in the source articles.
Security teams and developers should hunt for the following patterns:
pull_request_target in GitHub Actions workflowspackage-lock.json or requirements.txtnode_modules/.bin or Python's site-packagespull_request_target where possible, or use it with extreme caution, ensuring no user-controllable input is executed. Use tools like StepSecurity to harden CI/CD pipelines.postinstall scripts that access the network).package-lock.json, poetry.lock) and verify their integrity during builds to ensure that the exact, vetted versions of dependencies are used.TanStack details reveal sophisticated supply chain attack on 42 npm packages via GitHub Actions cache poisoning and OIDC token theft.
Harden CI/CD pipeline configurations. Avoid dangerous settings like 'pull_request_target' in GitHub Actions, or apply strict controls to prevent script injection from PRs.
While bypassed in this attack, code signing and provenance verification (SLSA) are still crucial. This incident highlights the need to secure the signing process itself.
Run build processes in ephemeral, isolated, and sandboxed environments with no access to the broader network or sensitive secrets, limiting the blast radius of a compromised build.
Implement strict egress filtering for build environments to block connections to unknown or decentralized networks like Session, preventing data exfiltration.
Mapped D3FEND Techniques:
The primary vector for the 'Mini Shai-Hulud' attack was the abuse of misconfigured GitHub Actions. Organizations must immediately audit all CI/CD workflows for insecure configurations. Specifically, any workflow using the pull_request_target trigger should be treated as highly sensitive. Best practice is to avoid this trigger if possible. If it must be used, ensure that no part of the pull request (e.g., title, body, branch name) is used to construct scripts or commands. Instead, use dedicated GitHub Actions that are designed to safely handle input from forks, such as those provided by StepSecurity. Harden workflows by pinning actions to full commit SHAs instead of tags (e.g., actions/checkout@a12a3959b4314016424a4da9ea17db71f2b9d54c instead of actions/checkout@v2). This prevents the build from being compromised if the tag is maliciously moved.
To detect malicious behavior in dependencies, integrate dynamic analysis (sandboxing) into the CI/CD pipeline. Before a new or updated dependency is promoted to a production build, it should be installed and run in an isolated, instrumented environment. Monitor the dependency for suspicious activities such as network connections to unexpected endpoints (especially anonymizing networks like Session), file system access outside of its intended scope, or attempts to read sensitive environment variables. Tools like Socket or Phylum provide this type of analysis for open-source packages. This acts as a critical backstop, catching malicious code that static analysis might miss, and can prevent a compromised package from ever reaching a developer's machine or a production build.
Build environments should be treated as untrusted and have strict network controls. Implement outbound traffic filtering (egress filtering) for all CI/CD runners. By default, deny all outbound network connections. Create an explicit allowlist for only the necessary domains required for the build process (e.g., npmjs.com, pypi.org, internal artifactories). This would have effectively neutered the 'Mini Shai-Hulud' malware by blocking its ability to exfiltrate stolen credentials to the decentralized Session network. This 'zero trust' approach to the build environment's networking capabilities is a powerful mitigation against both data exfiltration and the downloading of second-stage malware.

Cybersecurity professional with over 10 years of specialized experience in security operations, threat intelligence, incident response, and security automation. Expertise spans SOAR/XSOAR orchestration, threat intelligence platforms, SIEM/UEBA analytics, and building cyber fusion centers. Background includes technical enablement, solution architecture for enterprise and government clients, and implementing security automation workflows across IR, TIP, and SOC use cases.
Help others stay informed about cybersecurity threats
Every tactic, technique, and sub-technique used in this threat has been identified and mapped to the MITRE ATT&CK framework for consistent, actionable threat language.
Observables and indicators of compromise (IOCs) have been extracted and cataloged. Risk has been assessed and correlated with known threat actors and historical campaigns.
Detection rules, incident response steps, and D3FEND-aligned mitigation strategies are included so your team can act on this intelligence immediately.
Structured threat data is packaged as a STIX 2.1 bundle and can be visualized as an interactive graph — relationships between actors, malware, techniques, and indicators.
Sigma detection rules are derived from the threat techniques in this article and can be converted for deployment across any major SIEM or EDR platform.