{"version":"2.1.274","anchor":"git-subprocess-environment-hardened-with-stricter-protocoln","canonical_anchor":"git-subprocess-environment-hardened-with-stricter-protocoln","heading":"Git subprocess environment hardened, with explicit control over terminal prompts","tier":"notice","area":"Git Security","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.274\/e\/git-subprocess-environment-hardened-with-stricter-protocoln","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.274","markdown":"### Git subprocess environment hardened, with explicit control over terminal prompts\n\nGit commands Claude Code runs internally are now locked down against unexpected network access and interactive prompts\n\n**What**\n\n- New, frozen sets of environment variables are applied to internal git invocations: `GIT_ALLOW_PROTOCOL=\"none\"`, `GIT_NO_LAZY_FETCH=\"1\"`, `GIT_NO_REPLACE_OBJECTS=\"1\"`, `GIT_TERMINAL_PROMPT=\"0\"`, and, unless SSH is explicitly allowed, `GIT_SSH_COMMAND=\"false\"`.\n\n- The internal git command-construction helper gained a new `allowGitTerminalPrompt` option; unless a call explicitly allows it, `GIT_TERMINAL_PROMPT` is stripped from the environment passed to the git subprocess, whereas before it could pass through unfiltered.\n\n- Git push calls used internally (for worktree operations and plugin tag creation) now explicitly set `allowGitTerminalPrompt`: disabled for background worktree pushes, enabled for interactive plugin tag pushes.\n\n**Why**\n\nThis reduces the risk of internal git commands silently reaching the network, replacing objects, or hanging on an interactive credential prompt, while still allowing prompts in the specific cases where a human is present to answer them.\n\n- Area: Git Security\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5"}