Claude Code v2.1.150, Anthropic의 원격 시스템 프롬프트 주입 기능 발견
핵심 요약
Claude Code v2.1.150 버전에서 Anthropic이 네트워크를 통해 시스템 프롬프트를 원격으로 주입할 수 있는 기능이 발견되었습니다.
- 원격 주입 발견 — 네트워크 호출을 통해 시스템 프롬프트가 실시간으로 변경될 수 있는 기능이 확인됨.
- 보안 우려 제기 — 사용자가 모르는 사이에 모델의 동작이 원격으로 제어될 가능성에 대한 비판이 나옴.
- 버전 고정 권장 — 자동 업데이트로 인한 보안 위험을 피하기 위해 특정 버전(v2.1.149)으로 고정하는 사용자가 늘어남.
- 투명성 부족 — 변경 로그에 명시되지 않은 내부 인프라 변경 사항이 사용자에게 알림 없이 적용됨.
Claude Code 실행 파일의 시스템 프롬프트를 자주 수정해서 쓰는데, 업데이트할 때마다 Claude한테 새 바이너리를 분석하게 시킴. v2.1.150으로 업데이트하다가 좀 소름 돋는 걸 발견함.
Claude Code가 이제 네트워크를 통해 Anthropic이 원격으로 시스템 프롬프트를 주입할 수 있게 함.
데이터 소스는 두 군데임. 첫째는 시작할 때 api.anthropic.com/api/claude_cli/bootstrap으로 보내는 API 호출(디스크에 캐시됨). 둘째는 60초마다 백그라운드 동기화로 갱신되는 GrowthBook 기능 플래그(tengu_heron_brook). 이 엔드포인트에서 반환된 문자열은 셸 접근 권한이 있는 LLM 모델의 시스템 프롬프트에 주입됨.
이전 버전에도 주입 포인트는 있었지만, 죽은 코드였고 그냥 null을 반환했음. 이진 탐색(bisect) 해보니 v2.1.150에서 추가된 거임. 변경 로그에는 "내부 인프라 개선(사용자 체감 변경 없음)"이라고 적혀 있는데, 이건 엄청난 축소 해석임.
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 설정으로 이게 차단되는 걸 확인했음. 만약을 대비해 DISABLE_GROWTHBOOK=1도 설정할 예정임.
검증 명령어:
npm pack @anthropic-ai/[email protected] --pack-destination /tmp
tar xzf /tmp/anthropic-ai-claude-code-linux-x64-2.1.150.tgz
strings package/claude | grep -oP 'function nAA(\{{[^}]+\}'
strings package/claude | grep -oP '.{0,60}heron_brook.{0,60}'
nAA는 디스크에서 캐시된 값을 읽음. 네트워크 호출은 n0A 함수에서 시작 시 발생함. Rv("heron_brook", () => nAA())는 이걸 핵심 동작 지침과 함께 시스템 프롬프트의 한 섹션으로 등록함. 이 축소된 이름들은 이 바이너리에만 해당함.


