<?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>@Tanstack/Solid-Router-Ssr-Query — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/@tanstack/solid-router-ssr-query/</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 00:15:59 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/@tanstack/solid-router-ssr-query/feed.xml" rel="self" type="application/rss+xml"/><item><title>Compromised @tanstack/* Packages Exfiltrate Credentials via GitHub Actions Exploit</title><link>https://feed.craftedsignal.io/briefs/2026-05-tanstack-supply-chain/</link><pubDate>Tue, 12 May 2026 00:15:59 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-tanstack-supply-chain/</guid><description>On 2026-05-11, multiple malicious versions of `@tanstack/*` packages were published to the npm registry due to a chained attack exploiting vulnerabilities in GitHub Actions; the attacker used a compromised GitHub Actions OIDC trusted-publisher binding to publish credential-stealing malware that harvests credentials, exfiltrates data, and propagates the compromise by republishing other packages with the same injection, requiring users who installed affected versions to consider their environment compromised and rotate all credentials.</description><content:encoded><![CDATA[<p>On 2026-05-11, between approximately 19:20 and 19:26 UTC, 84 malicious versions across 42 <code>@tanstack/*</code> packages were published to the npm registry. The publishes were authenticated via the legitimate GitHub Actions OIDC trusted-publisher binding for <code>TanStack/router</code>, but the publish workflow itself was not modified. The attacker chained three known vulnerability classes — a <code>pull_request_target</code> &ldquo;Pwn Request&rdquo; misconfiguration, GitHub Actions cache poisoning across the fork↔base trust boundary, and runtime memory extraction of the OIDC token from the Actions runner process — to publish credential-stealing malware under a trusted identity. Each affected package received exactly two malicious versions, published a few minutes apart. This supply chain attack highlights the risks of compromised CI/CD pipelines and the potential for widespread credential theft.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker exploited a <code>pull_request_target</code> &ldquo;Pwn Request&rdquo; misconfiguration in the <code>TanStack/router</code> repository.</li>
<li>The attacker performed GitHub Actions cache poisoning across the fork↔base trust boundary, injecting malicious code into the cache.</li>
<li>The attacker extracted the OIDC token from the Actions runner process memory.</li>
<li>Using the compromised OIDC token, the attacker published malicious versions of <code>@tanstack/*</code> packages to the npm registry via the legitimate GitHub Actions OIDC trusted-publisher binding.</li>
<li>Upon installation of a malicious package version, the <code>router_init.js</code> payload (~2.3 MB obfuscated) executes.</li>
<li>The payload harvests credentials from AWS, GCP, Kubernetes, HashiCorp Vault, npm, GitHub, and SSH keys.</li>
<li>The harvested data is exfiltrated over the Session/Oxen messenger network to <code>filev2.getsession.org</code>, <code>seed{1,2,3}.getsession.org</code>.</li>
<li>The attacker enumerates packages maintained by the victim and republishes them with the same injection, propagating the compromise.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Any developer or CI environment that ran <code>npm install</code>, <code>pnpm install</code>, or <code>yarn install</code> against an affected version on 2026-05-11 should be considered compromised. All credentials accessible to the install process, including AWS, GCP, Kubernetes, Vault, npm, GitHub, and SSH keys, should be rotated immediately. Cloud audit logs should be reviewed for activity originating from the affected hosts during and after the install window. The malicious packages also attempt to propagate the compromise to other packages maintained by the victim.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Inspect the manifest of any pinned <code>@tanstack/*</code> version for the malicious <code>optionalDependencies</code> entry as described in the Detection section.</li>
<li>Block connections to the exfiltration domains <code>filev2.getsession.org</code>, <code>seed1.getsession.org</code>, <code>seed2.getsession.org</code>, and <code>seed3.getsession.org</code> at the network level.</li>
<li>Deploy the Sigma rules to detect the presence of the malicious <code>router_init.js</code> file.</li>
<li>Pin every <code>@tanstack/*</code> dependency to a known-good version published before 2026-05-11 19:00 UTC, as described in the Workarounds section.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>supply-chain</category><category>credential-theft</category><category>github-actions</category></item></channel></rss>