The TanStack Heist
Cache poisoning and the trust boundary that never existed.
TeamPCP did not break trusted publishing; they borrowed it. A fork PR runs with the repo owner's permissions via pull_request_target, poisons the shared cache, and waits. Any later merge to main triggers the trusted release run that restores the poisoned bytes, and the next step in that same job reads the OIDC token from runner memory and publishes 170+ npm packages that signature-check clean. No control was bypassed. Each one ran exactly as designed.