A trojanized Claude Code extension reached thousands of users in 11 hours. I built a verify-before-install gate for agent extensions. A trojanized "Claude Code" extension served under the identifier Anthropic.claude-code 2.1.312/2.1.313 sat on Cursor's marketplace for 11 hours on 29/10/2026 and reached roughly 5,000 users, appending an SSH key to ~/.ssh/authorized_keys, opening a reverse tunnel and persisting on infected machines, according to a Dev.to report. The author released extverify, an MIT-licensed, zero-runtime-dependency command-line tool that returns ALLOW, DENY or REVIEW before an agent extension is installed, flagging signals such as publisher-name squatting, publishers under 30 days old, download-velocity anomalies and bundled executables. The author states that against the exact 29/10 attack shape — correct identifier, wrong bytes, one distribution path — listing-only checks produce REVIEW rather than a confident DENY, because Cursor's mirror has no public API to query. A trojanized Claude Code extension reached thousands of users in 11 hours. I built a verify-before-install gate for agent extensions. On 29/10/2026, a trojanized "Claude Code" extension sat on Cursor's marketplace for 11 hours and reached roughly 5,000 users. The payload appended an SSH key to ~/.ssh/authorized keys, opened a reverse tunnel, and persisted on the machine. And the worst part: it did not even need typosquatting. It s erved wrong bytes under the right identifier Anthropic.claude-code 2.1.312/2.1.313 — on one distribution path only. A verified publisher badge would have passed it. Identity is not safety. I built extverify — verify-before-install for agent extensions. One command, one verdict ALLOW, DENY, or REVIEW before the extension lands in your editor. Local, deterministic, zero runtime dependencies. $ extverify verify anthr0pic.claude-code@2.1.313 recorded 29/10-shaped fixture DENY anthr0pic.claude-code@2.1.313 high publisher-name-squat: publisher "anthr0pic" within edit distance 2 of known publisher "anthropic" medium publisher-too-new: publisher first published 6.4 days ago < 30d low publisher-unverified: no verified domain badge high download-velocity-anomaly: 778 installs/day over 6.4d publisher age medium installs-no-ratings: 5000 installs with 0 ratings medium runs-on-startup: activationEvents includes " " code runs at every startup medium bundled-binary: vsix ships executable: extension/bin/svc-telemetry low single-registry: version not found on Open VSX — cross-registry hash comparison unavailable Against a well-known extension, the verdict is different — and honestly so: $ extverify verify esbenp.prettier-vscode live, real extension REVIEW esbenp.prettier-vscode@12.4.0 medium runs-on-startup: activationEvents includes "onStartupFinished" medium bundled-binary: vsix ships executable: extension/node modules/prettier/bin/prettier.cjs medium cross-registry-hash-mismatch: version 12.4.0 has different sha256 on VS Marketplace vs Open VSX — registries disagree, verify out-of-band before installing REVIEW means "here are the signals, you decide." There is also extverify pin