<?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>UiPath — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/uipath/</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 07:01:02 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/uipath/feed.xml" rel="self" type="application/rss+xml"/><item><title>Mini Shai-Hulud Campaign Compromises npm Packages</title><link>https://feed.craftedsignal.io/briefs/2026-05-mini-shai-hulud-npm/</link><pubDate>Tue, 12 May 2026 07:01:02 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-mini-shai-hulud-npm/</guid><description>The Mini Shai-Hulud supply chain campaign, attributed to TeamPCP, has compromised several npm packages, including those within the @tanstack, @uipath, and @mistralai namespaces, leading to credential theft and potential further compromise.</description><content:encoded><![CDATA[<p>On May 11, 2026, TeamPCP launched a coordinated supply chain attack against the npm ecosystem, compromising packages across multiple namespaces simultaneously. Impacted packages include those in the @tanstack, @uipath, and @mistralai namespaces. The TanStack compromise exploited a chain of three vulnerabilities in GitHub Actions, allowing the attacker to poison the cache and extract OIDC tokens. The published packages contain two infection vectors: an optionalDependencies entry and an embedded ~2.3MB obfuscated file named router_init.js. The UiPath packages use a preinstall script (node setup.mjs) to download the Bun runtime and execute the payload. This campaign uses similar methods to previous TeamPCP operations.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker creates a fork of a legitimate repository (e.g., TanStack/router) and renames it (e.g., zblgg/configuration).</li>
<li>Attacker opens a pull request to the original repository, triggering a <code>pull_request_target</code> workflow.</li>
<li>The workflow checks out and executes the attacker&rsquo;s fork code.</li>
<li>The attacker&rsquo;s code poisons the GitHub Actions cache with a malicious pnpm store.</li>
<li>Legitimate maintainer pull requests are merged, restoring the poisoned cache.</li>
<li>Attacker-controlled binaries extract OIDC tokens from the GitHub Actions runner&rsquo;s process memory (<code>/proc/&lt;pid&gt;/mem</code>).</li>
<li>The attacker uses stolen tokens to publish malicious package versions to npm.</li>
<li>The published packages execute a credential stealer and self-propagating worm that exfiltrates data via git-tanstack[.]com, Session messenger network, and GitHub API dead drops.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>The compromised npm packages can lead to the theft of sensitive credentials, including CI/CD tokens (GitHub Actions OIDC, GitLab, CircleCI), cloud credentials (AWS IMDSv2, GCP, Azure), Kubernetes service accounts, HashiCorp Vault tokens, and package registry tokens. The self-propagating worm functionality allows the attacker to further compromise other npm packages the victim has write access to. On developer machines, the malware installs a persistent gh-token-monitor daemon that polls GitHub and can wipe the home directory if a token is revoked.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Search lockfiles and CI logs for affected package versions, specifically looking for <code>router_init.js</code> or <code>setup.mjs</code> at package roots (see affected packages list in this brief).</li>
<li>Search for the <code>gh-token-monitor</code> daemon on developer machines and remove it before revoking GitHub tokens to avoid the wiper (see Attack Chain and Overview).</li>
<li>Block the C2 domain <code>git-tanstack.com</code> and <code>*.getsession.org</code> at the DNS/proxy level (see IOCs).</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">threat</category><category>supply-chain</category><category>npm</category><category>malware</category></item></channel></rss>