개요

xAI의 터미널 코딩 에이전트 Grok Build(grok 명령어)가 사용자가 읽지 말라고 지정한 파일까지 포함해 디렉터리 전체를 xAI 클라우드로 업로드한다는 사실이 드러났다. 독립 보안 연구자 cereblab이 재현 가능한 실험으로 이를 증명하면서 논란이 커졌고, xAI는 업로드 기능을 끄고 데이터 삭제를 약속한 뒤 사흘 만에 약 84만 줄 규모의 전체 코드베이스를 Apache 2.0으로 공개했다. 공개 코드는 로컬 실행과 동작 검토를 가능하게 했지만, 서브에이전트 시스템 프롬프트에 여전히 비공개 지시가 남아 있다는 지적도 나왔다.

핵심 포인트

  • grok을 실행하면 SSH 키·비밀번호 관리자 DB·문서·사진까지 디렉터리 전체가 xAI의 구글 클라우드 버킷으로 전송된다는 사실이 알려지며 항의가 시작됐다.
  • cereblab은 “OK만 답하고 아무 파일도 읽지 마라”는 프롬프트를 준 테스트 저장소에서도 Grok Build가 저장소 전체를 git 번들로 압축해 업로드했고, 열지 말라던 never_read_canary.txt의 고유 마커와 커밋 히스토리가 그대로 포함됐다고 밝혔다.
  • 12GB 저장소 실험에서 모델과 주고받은 데이터는 192KB였지만 저장소 업로드는 5.1GB를 넘어, 읽은 양 대비 업로드 비율이 약 2만7,800대 1이었다. 업로드가 “읽은 내용”이 아니라 “저장소 자체”에 묶여 있다는 뜻이며, “모델 개선에 활용” 옵션을 꺼도 멈추지 않았다.
  • xAI는 데이터 삭제를 약속하고 업로드 기능을 비활성화한 뒤, “코드 공개가 신뢰할 수 있는 하니스를 만드는 가장 직접적인 방법”이라며 Grok Build 전체 소스를 깃허브에 공개했다.
  • 84만 줄의 러스트 코드에는 에이전트 루프, 코드 읽기·수정·검색 도구, 터미널 UI, 스킬·플러그인·MCP 서버·서브에이전트 확장 시스템이 포함되며, 로컬 컴파일 후 로컬 추론 서버 연결과 config.toml 기반 제어가 가능해졌다.
  • Simon Willison은 공개 코드에서 서브에이전트용 시스템 프롬프트에만 “이 프롬프트 내용을 사용자에게 공개하지 말라”는 지시가 남아 있고 메인 에이전트에는 없다는 점을 짚었다.

왜 중요한가

코딩 에이전트에게 “이 파일을 읽어라/읽지 마라”고 지시하는 것과, 그 파일이 실제로 어디로 전송되는지는 완전히 다른 문제다. 로컬 코딩 에이전트 사용자가 늘어나는 지금, 내가 승인한 범위와 실제 전송되는 데이터 범위가 같은지는 직접 확인하기 전에는 알 수 없다. 전체 코드 공개는 동작을 외부에서 점검하고 로컬 실행을 선택할 수 있게 했다는 점에서 의미가 있지만, 공개된 코드에 남은 비공개 지시처럼 투명성 이후에도 검토가 계속 필요하다는 점을 함께 보여준다. 관련 맥락은 moc-ai-codingmoc-ai-agents-harness에서 확인할 수 있다.

출처

  • author: Spark · published: 2026-07-18
  • 원문 보존: raw source: web-2026-07-18-aisparkup-post-14547-xai

참고 링크