{"id":"EUVD-2026-29352","revision":"5b65bef2474e491495c9db086ce58c2d","records":[{"revision":"5b65bef2474e491495c9db086ce58c2d","observedAt":"2026-10-30T07:56:20.083+00:00","statement":{"source":"euvd","id":"EUVD-2026-29352","aliases":["CVE-2026-45321"],"title":"On 2026-05-11, between approximately 19:20 and 19:26 UTC, 84 malicious versions across 42 @tanstack/* packages were published to the npm registry. The publishes were authenticated via the legitimate GitHub Actions OIDC trusted-publisher bin…","description":"On 2026-05-11, between approximately 19:20 and 19:26 UTC, 84 malicious versions across 42 @tanstack/* packages were published to the npm registry. The publishes were authenticated via the legitimate GitHub Actions OIDC trusted-publisher binding for TanStack/router, but the publish workflow itself was not modified. The attacker chained three known vulnerability classes — a pull_request_target \"Pwn Request\" 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.","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[{"system":"EUVD CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H","score":9.6,"severity":null}],"references":["https://github.com/TanStack/router/security/advisories/GHSA-g7cv-rxg3-hmpx","https://github.com/TanStack/router/issues/7383","https://tanstack.com/blog/npm-supply-chain-compromise-postmortem","https://www.stepsecurity.io/blog/mini-shai-hulud-is-back-a-self-spreading-supply-chain-attack-hits-the-npm-ecosystem"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-29352","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"May 12, 2026, 12:12:35 AM","dateUpdated":"Aug 4, 2026, 3:56:09 AM"},"relatedAdvisories":[],"note":"EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON."},"key":"euvd:EUVD-2026-29352","identifiers":["EUVD-2026-29352","CVE-2026-45321"]},"retained":false,"historicalAffected":[]}],"coverage":[]}