MAL-2026-3492
Vulnerability from ossf_malicious_packages
-= Per source details. Do not edit below this line.=-
Source: amazon-inspector (e7021ac6b47d0f973f936ca9d15cd26f43a01b1151ce691ec8b10be5001be2bb)
This version of @tanstack/start-storage-context belongs to the @tanstack/* package family that was compromised via CI cache poisoning, with 42 packages republished in two malicious versions each on 2026-05-11. The campaign's structural fingerprints include: an undeclared multi-megabyte obfuscated JavaScript blob at the tarball root not listed in package.json's "files" array; an optionalDependencies entry pointing at a github: orphan-commit reference ("@tanstack/setup": "github:tanstack/router#") to smuggle a second-stage payload outside the npm registry; harvesting of cloud-provider metadata (AWS IMDS, GCP metadata, Kubernetes SA tokens), npm tokens from ~/.npmrc, GitHub tokens, and SSH keys; exfiltration over Session/Oxen (filev2.getsession.org, seed{1,2,3}.getsession.org) to defeat IP/domain blocking; second-stage fetch from litter.catbox.moe (anonymous 72-hour-TTL host); /proc//mem scraping of the GitHub Actions runner's OIDC token to publish further malicious versions; and self-propagation via the npm maintainer-search API. Installing this version on a developer machine or CI runner exposes credentials, cloud metadata, and any reachable npm/GitHub publishing identities to the attacker.
Source: ghsa-malware (d5a0ae6d7087ec56fc2bc7f8be04f27f0d1f7f9d9e660b1969f0e790148dc627)
Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
Source: google-open-source-security (5e1924464368f0c5816ee84e000cc47017f44045140feafbbc9e685d847ed5a5)
This package was compromised as part of the "Mini Shai-Hulud is back" worm by the TeamPCP threat actor.
The package will steal credentials and then propogate it to every package it has access to. The package also attempts to remain persistent.
- CWE-506 - The product contains code that appears to be malicious in nature.
{
"affected": [
{
"database_specific": {
"cwes": [
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
}
]
},
"package": {
"ecosystem": "npm",
"name": "@tanstack/start-storage-context"
},
"versions": [
"1.166.41",
"1.166.38"
]
}
],
"aliases": [
"GHSA-66j2-5c8h-j3f7"
],
"database_specific": {
"iocs": {
"domains": [
"git-tanstack.com",
"filev2.getsession.org",
"api.masscan.cloud",
"seed1.getsession.org"
]
},
"malicious-packages-origins": [
{
"id": "GHSA-66j2-5c8h-j3f7",
"import_time": "2026-05-12T01:08:51.460536821Z",
"modified_time": "2026-05-12T00:01:40Z",
"sha256": "d5a0ae6d7087ec56fc2bc7f8be04f27f0d1f7f9d9e660b1969f0e790148dc627",
"source": "ghsa-malware",
"versions": [
"1.166.41",
"1.166.38"
]
},
{
"import_time": "2026-05-12T06:23:00.48559Z",
"modified_time": "2026-05-12T06:19:26Z",
"sha256": "5e1924464368f0c5816ee84e000cc47017f44045140feafbbc9e685d847ed5a5",
"source": "google-open-source-security",
"versions": [
"0.10.1"
]
},
{
"id": "IN-MAL-2026-003445",
"import_time": "2026-05-26T05:50:39.421804675Z",
"modified_time": "2026-05-20T03:10:12Z",
"sha256": "e7021ac6b47d0f973f936ca9d15cd26f43a01b1151ce691ec8b10be5001be2bb",
"source": "amazon-inspector",
"versions": [
"1.167.4"
]
}
]
},
"details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (e7021ac6b47d0f973f936ca9d15cd26f43a01b1151ce691ec8b10be5001be2bb)\nThis version of @tanstack/start-storage-context belongs to the @tanstack/* package family that was compromised via CI cache poisoning, with 42 packages republished in two malicious versions each on 2026-05-11. The campaign\u0027s structural fingerprints include: an undeclared multi-megabyte obfuscated JavaScript blob at the tarball root not listed in package.json\u0027s \"files\" array; an optionalDependencies entry pointing at a github: orphan-commit reference (\"@tanstack/setup\": \"github:tanstack/router#\u003csha\u003e\") to smuggle a second-stage payload outside the npm registry; harvesting of cloud-provider metadata (AWS IMDS, GCP metadata, Kubernetes SA tokens), npm tokens from ~/.npmrc, GitHub tokens, and SSH keys; exfiltration over Session/Oxen (filev2.getsession.org, seed{1,2,3}.getsession.org) to defeat IP/domain blocking; second-stage fetch from litter.catbox.moe (anonymous 72-hour-TTL host); /proc/\u003cpid\u003e/mem scraping of the GitHub Actions runner\u0027s OIDC token to publish further malicious versions; and self-propagation via the npm maintainer-search API. Installing this version on a developer machine or CI runner exposes credentials, cloud metadata, and any reachable npm/GitHub publishing identities to the attacker.\n\n## Source: ghsa-malware (d5a0ae6d7087ec56fc2bc7f8be04f27f0d1f7f9d9e660b1969f0e790148dc627)\nAny computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.\n\n## Source: google-open-source-security (5e1924464368f0c5816ee84e000cc47017f44045140feafbbc9e685d847ed5a5)\nThis package was compromised as part of the \"Mini Shai-Hulud is back\" worm by the TeamPCP threat actor.\n\nThe package will steal credentials and then propogate it to every package it has access to. The package also attempts to remain persistent.\n",
"id": "MAL-2026-3492",
"modified": "2026-05-27T09:52:22Z",
"published": "2026-05-12T00:01:29Z",
"references": [
{
"type": "ADVISORY",
"url": "https://github.com/advisories/GHSA-66j2-5c8h-j3f7"
},
{
"type": "ARTICLE",
"url": "https://www.aikido.dev/blog/mini-shai-hulud-is-back-tanstack-compromised"
},
{
"type": "ARTICLE",
"url": "https://www.stepsecurity.io/blog/mini-shai-hulud-is-back-a-self-spreading-supply-chain-attack-hits-the-npm-ecosystem"
},
{
"type": "ARTICLE",
"url": "https://socket.dev/blog/tanstack-npm-packages-compromised-mini-shai-hulud-supply-chain-attack"
},
{
"type": "ARTICLE",
"url": "https://tanstack.com/blog/npm-supply-chain-compromise-postmortem"
},
{
"type": "ARTICLE",
"url": "https://snyk.io/blog/tanstack-npm-packages-compromised/"
}
],
"schema_version": "1.7.4",
"summary": "Malicious code in @tanstack/start-storage-context (npm)"
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.