Fetching from the wire…
Top 5 · 2026-08-08 · source-backed
Microsoft Threat Intelligence disclosed ChainDrop on August 4: a self-propagating npm worm that poisoned 444 packages across 2,212 versions in under four hours, starting from [redacted] at 150M weekly downloads, plus flat-cache and file-entry-cache. Corroborated by Unit 42, StepSecurity, Expel, and Microsoft.
Token theft is the boring part. It grabs npm, GitHub, AWS, Vault, and Stripe credentials plus AI assistant tokens. Standard.
The new part is where it hides. ChainDrop writes persistence into .claude/settings.json and .vscode/tasks.json as a SessionStart hook. That means npm install is no longer the reinfection vector. Opening your coding agent in a poisoned repo is. Clone the repo, start Claude Code, dropper runs. You can nuke node_modules, reinstall clean, and get reinfected the next time you open the project.
Two commands, run them now:
git log --all --diff-filter=A -- '.claude/settings.json' '.vscode/tasks.json'
find . -path '*/node_modules/*' \( -name 'setup.mjs' -o -name 'Math_*.js' -o -name 'math_init.js' \)
The first tells you whether those config files entered your history in a commit you don't recognize. The second finds the dropper payloads.
Sequencing warning, and this one matters more than the audit: remove the worm's 60-second token-liveness monitor before rotating credentials. If you rotate first, the monitor detects dead tokens and fires a destructive handler. This is the first supply chain attack I've seen where the naive incident response makes things worse.
Step back from the mechanics and there's a structural problem here. Agent config files are executable. .claude/settings.json with a SessionStart hook is a shell script wearing a JSON costume, and it lives in the repo, gets committed, gets reviewed with the same attention as a .prettierrc. We spent fifteen years learning to be paranoid about postinstall scripts. Nobody reviews hooks yet.
I checked my own repos after reading this. Clean, but I'd never once looked at .claude/settings.json in a diff with actual suspicion, and I review every other line that goes into my projects. That's the gap.
Each link below shares sources, entities, or timing with this story.
Three things happened this month that only make sense together. Agent Plugins 1.0 shipped co-signed by six competitors: AWS, Anysphere, Microsoft, OpenAI, Vercel and Google (GitHub Changelog). It makes skills-plus-MCP bundles portable across clients. OpenAI's August 11 Codex c...
A spec is a press release until someone who didn't write it implements it. GitHub made Agent Plugins 1.0 generally available on August 12 across VS Code, Copilot CLI, the Copilot SDK, and the Copilot app on all plans. The spec, published August 6, was co-authored by AWS, Anysp...
Three separate Anthropic changes over about two weeks point the same direction, and none of them announced themselves as a strategy. Claude Code 2.1.238 added claude self-hosted-runner --defer-shutdown-max-min, which keeps serving attached sessions on SIGTERM, parks whatever's...
Hudson Rock got hold of the archive and counted it. 433,909 files. 118,829 CI runner dumps traced to 2,488 corporate domains. AWS keys, Salesforce client secrets, Slack signing secrets, Azure environment variables, and AI provider API keys belonging to NVIDIA, Volkswagen, Micr...
Six clients. One manifest. Zero vendor lock. Vercel published Agent Plugins 1.0.0 on August 6, an openly licensed spec that bundles Agent Skills and MCP servers behind a single portable manifest. The shape is deliberately boring: a plugin.json requiring only schemaVersion and...
Anthropic invented a file convention. It's now shipping GA inside a competitor's product. Nobody wrote a spec, nobody held a standards meeting, it just happened. On July 29, GitHub made agent skills and MCP server support generally available in Copilot code review for all Pro,...
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.