TanStack npm Supply Chain Compromise
- TanStack’s npm packages were compromised due to a supply chain attack.
- The attacker installed a dead-man’s switch that could delete user files if the token is revoked.
- npm’s security policies were criticized for not allowing package unpublishing due to dependent packages.
The Buzz Score: The Internet’s Verdict: 70% Hyped, 30% Skeptical
Introduction
The TanStack npm supply chain compromise has raised concerns about the security of npm packages.
Forum Voices
Some developers expressed concerns about the compromise:
Please be careful when revoking tokens. It looks like the payload installs a dead-man’s switch at ~/.local/bin/gh-token-monitor.sh as a systemd user service (Linux) / LaunchAgent com.user.gh-token-monitor(macOS). It polls api.github.com/user with the stolen token every 60s, and if the token is revoked (HTTP 40x), it runs rm -rf ~/.
Others criticized npm’s security policies:
Unpublish was unavailable for nearly all affected packages because of npm’s ‘no unpublish if dependents exist’ policy. We have to rely on npm security to pull tarballs server-side, which adds hours of delay during which malicious tarballs remain installable
Developers also discussed the importance of using pnpm and the need for staged publishing:
Postinstall scripts are deadly. Everyone should be using pnpm. Crazy that an ‘orphan’ commit pushed to a FORK(!) could trigger this (in npm clients). IMO GitHub deserves much of the blame here. A malicious fork’s commits are reachable via GitHub’s shared object storage at a URI indistinguishable from the legit repo. That is absolutely bonkers.
Conclusion
The TanStack npm supply chain compromise highlights the need for improved security measures in the npm ecosystem.
Focus Keyword: npm compromise