Fetching from the wire…
Public story · 2026-08-26 · high
Version 2.1.246, released August 25, closes the leak and tightens three more permission checks in the same update.
Why now: Every Claude Code version before August 25 sent gateway keys to Anthropic, so the fix protects nothing already leaked, only rotation closes that gap.
Claude Code sent third-party gateway API keys to Anthropic's own telemetry servers, a bug closed in version 2.1.246's changelog, released August 25. Anyone routing Claude Code through a proxy, a Bedrock-style gateway, or an internal LLM router had that key travel with every telemetry call to Anthropic. It didn't stay scoped to its own host. Rotate any gateway key used before 2.1.246.
Nothing in the changelog says Anthropic did anything with those keys. That doesn't change the response. A credential that leaves the host it's scoped to gets rotated, the same discipline that applies when a secret turns up in a CI log.
The same release adds a startup warning for Bash allow rules with a wildcard placed before the subcommand. Anthropic's example, Bash(git * main), reads like git something main but also permits git -c core.pager=<anything> ... main. The same bypass shape has been filed against qwen-code and mcp-shell's git aliases.
A second landmine sits in auto mode configuration. The classifier reads autoMode only from ~/.claude/settings.json, managed settings, or --settings, never from a project's .claude/settings.json or .claude/settings.local.json.
The auto mode config docs warn that setting environment, allow, soft_deny, or hard_deny without the literal "$defaults" string replaces the entire built-in rule list. That drops the force-push rule, the curl | bash rule, and the data-exfiltration rules along with it. 2.1.246 auto-inserts "$defaults" for rules added through the new /permissions menu, but it doesn't fix a config edited by hand months ago.
The release also marks subagent output as partial when a run stops at its turn limit, with a hint to continue. Before this, a truncated subagent result looked identical to a finished one. Output collected from a long-running subagent may have been a fragment treated as complete.
Each link below shares sources, entities, or timing with this story.
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...
One Claude Code release fixed two independent permission-check bypasses on the same day. That's the story. Version 2.1.221, shipped August 4, patches a Bash tool bypass where zsh could execute hidden commands embedded inside [[ ]] regex conditionals. The approval prompt never...
One line in the v2.1.215 changelog, July 19: Claude Code no longer invokes the /verify and /code-review skills on its own. You call them explicitly now (changelog). If your workflow assumed a review pass fired at the end of a task, it doesn't anymore, and nothing told you. Cod...
Go look at your ~/.claude/CLAUDE.md right now. Mine has internal package names, a build command with a host in it, and notes about which credentials live where. I wrote it assuming exactly one reader. RuntimeWire published traced request captures on August 9 showing Muse Code...
Claude Code 2.1.232 shipped August 13 with a default flipped underneath everyone. Subagent forking is now on: a spawned subagent inherits the full parent conversation and shares its prompt-cache prefix instead of starting cold. Nested spawn depth defaults to 3. Practitioner wr...
Two days from now, on August 14, auto mode becomes the default permission mode for new Pro, Max, and Team sessions (Claude Code Docs, Week 32). Not opt-in. Default. Every new session you start after Thursday has a different permission posture than the ones you started this wee...
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.