Claude Code, 이메일·User-Agent 함께 든 일부 셸 명령 차단
GitHub 이슈 #107757은 Claude Code가 웹 검색 요청의 `User-Agent`에 로그인 이메일을 넣었다고 주장합니다. v2.1.317부터 기본 활성화된 개인정보 모드는 이메일과 User-Agent 표기가 함께 든 일부 셸 명령을 거부하지만, 공개된 모드의 훅은 WebSearch·WebFetch·MCP 호출을 검사하지 않습니다.
GitHub의 Claude Code 저장소 이슈 #107757에서 taylor-edwards 계정 사용자는 Claude Code가 웹 검색 중 로그인 이메일을 User-Agent 요청 헤더에 넣어 외부 사이트로 보냈다고 주장했습니다. 작성자는 그 결과 하루 수십 통의 사기 메일을 받는다고 적었습니다. 이슈는 열린 상태이며 환경란에는 macOS와 Claude Code v2.1.318이 기록돼 있습니다.
저장소 기여자 @poteat은 로그인 계정 이메일이 사용자를 식별하도록 모델 문맥에 제공된다고 설명했습니다. 모델이 웹사이트의 자동화 클라이언트 정책에 맞추려 curl 명령의 User-Agent에 연락 이메일을 넣을 수 있다는 설명입니다. @poteat은 자동화 요청에 연락 이메일을 요구하는 사이트의 예로 Wikipedia를 들었습니다.
Claude Code v2.1.317 릴리스 노트에는 이메일을 네트워크로 보내는 웹 또는 셸 도구 호출 전에 확인을 요청하는 검사를 추가했다고 적혀 있습니다. @poteat은 같은 버전부터 이 동작을 차단하는 내장 개인정보 모드를 제공했으며 기본 활성화했다고 밝혔습니다. 2026년 11월 6일 기준 최신 릴리스는 v2.1.318입니다. 별도 PR #107768은 모드의 소스를 공개했으며, PR 설명은 새 동작을 추가하지 않았다고 밝힙니다.
공개된 모드 소스의 README에 따르면 tool.check 훅은 Bash, PowerShell, Monitor 호출의 입력을 검사합니다. 입력에 계정 이메일과 User-Agent, user_agent, --user-agent 같은 표기 또는 curl -A, wget -U 등의 옵션이 함께 있으면 호출을 거부합니다. 거부 메시지는 사용자 확인창 대신 이메일을 빼고 다시 실행하도록 모델에 안내합니다. 사용자가 이메일 전송을 요청한 경우에는 해당 설정을 빼거나 별도 호출로 나누도록 안내합니다. 거부는 권한 모드와 관계없이 적용됩니다.
이 검사는 명령 입력 전체에서 이메일과 User-Agent 표기를 찾습니다. 따라서 이메일과 User-Agent를 함께 언급한 명령도 거부될 수 있습니다. 반면 공개된 모드의 README는 WebSearch·WebFetch·MCP 호출은 검사 대상이 아니라고 명시합니다. 이메일을 URL이나 요청 본문에 넣거나 런타임 변수·파일·스크립트를 통해 보내는 경우, 또는 문서가 열거한 것과 다른 방식으로 User-Agent를 설정하는 명령도 이 검사에 잡히지 않을 수 있습니다.
모드는 기본 활성화되어 있지만 /plugin disable 명령이나 설정으로 끌 수 있습니다. 세션에서 읽는 서버 측 스위치, 우선순위가 더 높은 플러그인 훅, 훅 모듈이 로드되지 않는 상황도 차단 동작에 영향을 줄 수 있다고 README는 설명합니다.
모드 소스를 공개한 PR의 테스트 계획에는 TypeScript 5.9.3 형식 검사가 기록돼 있습니다. 모드에 테스트 폴더가 없어 저장소의 모드 테스트 작업은 이 모드의 전용 테스트를 실행하지 않았다고도 적혀 있습니다.