<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Router — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/router/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Tue, 12 May 2026 11:30:55 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/router/feed.xml" rel="self" type="application/rss+xml"/><item><title>Shai-Hulud Malware Used in Supply Chain Attack via Compromised npm Packages</title><link>https://feed.craftedsignal.io/briefs/2026-05-shai-hulud-supply-chain/</link><pubDate>Tue, 12 May 2026 11:30:55 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-shai-hulud-supply-chain/</guid><description>The Shai-Hulud malware was used in a large-scale software supply-chain attack compromising hundreds of packages across open-source software ecosystems by compromising developer secrets and CI/CD pipelines.</description><content:encoded><![CDATA[<p>A large-scale software supply-chain attack involving the &ldquo;Shai-Hulud&rdquo; malware has compromised hundreds of packages across open-source software ecosystems, including npm, PyPI, and Composer. The attack, attributed to the TeamPCP threat group, began by compromising dozens of TanStack and Mistral AI packages and quickly extended to other popular projects, including Guardrails AI, UiPath, OpenSearch, Bitwarden CLI, and SAP packages. The attacker hijacked valid OpenID Connect (OIDC) tokens to publish malicious package versions with verifiable provenance attestation (SLSA Build Level 3) via legitimate CI/CD pipelines. The latest attack wave occurred recently, with the threat actor publishing multiple malicious packages in the TanStack namespaces on the Node Package Manager (npm), and then spreading to other projects using stolen CI/CD credentials.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker compromises legitimate CI/CD pipelines, potentially by exploiting vulnerabilities such as a risky &lsquo;‘pull_request-target’&rsquo; workflow, GitHub Actions cache poisoning, and OIDC token theft from runner memory.</li>
<li>The attacker gains access to valid OpenID Connect (OIDC) tokens and GitHub/npm credentials.</li>
<li>Using the compromised credentials, the attacker publishes malicious package versions with verifiable provenance attestation (SLSA Build Level 3) on package repositories such as npm, PyPI, and Composer.</li>
<li>The attacker modifies package tarballs to inject malicious payloads into popular projects.</li>
<li>Developers unknowingly download and install the compromised packages, which contain credential-stealing malware.</li>
<li>The malware reads GitHub Actions process memory to collect credentials from various file paths associated with cloud providers, cryptocurrency tokens, and messaging apps.</li>
<li>The malware exfiltrates stolen developer secrets, including GitHub tokens, npm tokens, AWS credentials, Vault tokens, and Kubernetes service accounts, via the Session P2P network.</li>
<li>The malware writes itself into Claude Code hooks and VS Code auto-run tasks for persistence, ensuring it survives uninstallation of the malicious packages.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Hundreds of packages across npm, PyPI, and Composer have been compromised. Over 160 compromised packages were found on npm by Endor Labs, Aikido recorded 373 malicious package-version entries, and Socket tracked 416 compromised package artifacts. Developers who downloaded affected package versions should assume their credentials were exposed. Successful attacks can lead to the theft of sensitive credentials, enabling further unauthorized access and potentially impacting cloud infrastructure, source code repositories, and sensitive data stores.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Check for affected package versions in your projects, as identified in reports from security vendors [references].</li>
<li>Rotate all potentially exposed credentials (GitHub tokens, npm tokens, AWS credentials, Vault tokens, Kubernetes service accounts, and CI/CD secrets) as recommended by researchers.</li>
<li>Audit IDE directories for malicious files surviving npm install (e.g., router_runtime.js or setup.mjs).</li>
<li>Block the threat actor&rsquo;s command-and-control infrastructure (api.masscan.cloud, git-tanstack.com, and *.getsession.org) at the DNS or proxy level.</li>
<li>Implement behavioral analysis at install time, along with signature-based checks for malicious packages, as suggested by Snyk researchers.</li>
<li>Consider enforcing lockfile-only installs to prevent auto/silent package updates to mitigate the risk from similar attacks.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">threat</category><category>supply-chain</category><category>supply-chain-attack</category><category>npm</category><category>pypi</category><category>credential-theft</category><category>shai-hulud</category></item></channel></rss>