Grok Bot 소스맵 노출 사고, 재구성 프로젝트로 이어진 전말
도구·라이브러리

Grok Bot 소스맵 노출 사고, 재구성 프로젝트로 이어진 전말

Cursor와 한 몸으로 묶인 xAI의 코딩 에이전트, 소스맵 하나로 프롬프트와 라우팅 로직까지 재구성됐고 그 방식은 클로드코드에도 낯설지 않다

2026-08-27논의 1회 정리

2026년 8월 클코단에서는 Grok Bot 0.18.0 재구성 저장소가 공유되며 여러 명이 일단 포크부터 해뒀다는 이야기가 오갔다. 코드를 실제로 열어본 사람은 많지 않았지만 앞으로는 여러 벤더 모델을 골라 쓸 수 있는 구조가 바람직하다는 의견이 나왔다. 이 저장소가 어떻게 나왔는지, 포크해서 실제로 무엇을 할 수 있는지, 그리고 왜 클로드코드를 쓰는 사람에게도 남의 일이 아닌지를 짚는다.

소스맵 하나가 프로덕션 에이전트의 속을 드러냈다

Grok Bot은 xAI가 8월 11일 베타로 내놓은 자율형 에이전트다. 스스로 계획을 세워 여러 단계를 실행한다. 지메일이나 세일즈포스 같은 실제 서비스에 로그인해 노트북을 닫아 둔 채로도 작업을 이어가는 방식을 표방한다. 문제는 이 macOS 앱의 0.18.0 빌드가 런타임 소스맵을 켠 채로 배포됐다는 점이다.

보안 연구자로 알려진 베넷(Bennett)이 이 소스맵을 이용해 패키징된 앱에서 읽을 수 있는 TypeScript 소스를 복원했다. 드러난 범위가 넓다. Electron 호스트, 코디네이터, 로컬 실행, 프로토콜 경계는 물론 시스템 프롬프트를 조립하는 로직과 툴 정의까지 포함됐다. 베넷은 이를 grok-bot-0.18-reconstructed라는 이름으로 GitHub에 올렸다. GitHub에서 포크가 수천 건 붙었다. 별다른 공지 없이 막힌 것으로 보인다는 관측이 뒤따랐다.

재구성 저장소로 실제로 할 수 있는 일

이 저장소는 단순히 코드를 읽기 위한 아카이브가 아니다. 복원된 소스를 다시 macOS 앱으로 빌드해 낼 수 있는 결정론적 툴체인까지 갖췄다. 실행하면 설정에서 라우터 화면을 열 수 있는데, 새로 시작하는 대화에 어떤 백엔드를 쓸지 여기서 고른다. 기본값은 원래대로 Cursor다. 이 값을 Codex나 OpenRouter로 바꾸면 다른 모델 제공사로 요청을 보낼 수 있다.

같은 화면에는 "로컬 도커 VM 사용" 토글도 있다. 이를 켜면 Cursor가 원격으로 호스팅하던 샌드박스 대신, 컨테이너를 로컬에서 띄워 박스 호스트와 실행 데몬을 돌린다. 단 Docker Desktop 같은 로컬 도커 데몬이 미리 떠 있어야 동작한다. Grok 전용으로 나온 제품의 배관을 뜯어 원하는 모델로 갈아 끼운 사례가 이미 코드로 존재하는 셈이다. 방에서 나왔던 "멀티벤더 모델 지원이 앞으로 바람직한 구조"라는 의견 그대로다.

Grok Bot과 Cursor는 어디까지 한몸인가

Grok Bot은 독립 제품처럼 보이지 않는다. 앱 다운로드도 Cursor가 호스팅하고 로그인도 Cursor 계정을 그대로 쓰며 결제도 Cursor 요금제(Pro+, Ultra, Teams)나 개인 SuperGrok Plus·Heavy 연결로 이뤄진다. xAI의 대표 신제품이 정작 계정 발급이나 결제, 삭제까지 다른 회사의 대시보드를 거쳐야 하는 구조라는 지적도 있었다.

사용량 계산만큼은 분리돼 있다. 주간 Bot 사용량은 Cursor 에디터에서 쓰는 모델 크레딧과 별개 버킷으로 집계된다. 방에서 "Grok-bot 사용량은 Cursor 사용량과 별개"라고 공유됐던 설명과 일치한다. xAI가 공개 FAQ에 정확한 한도를 밝히지 않았다. 구독료가 무제한 사용을 보장하는 예산이라기보다 최소 접근권에 가깝다는 평가도 나온다.

클로드코드도 낯설지 않은 사고다

같은 유형의 사고가 클로드코드 쪽에도 있었다. 2026년 3월 30일, @anthropic-ai/claude-code 2.1.88 버전이 60MB짜리 cli.js.map 파일을 그대로 npm에 올렸다. 이 파일에 원본 소스가 통째로 담겨 있어 약 1900개 파일, 50만 줄 분량의 TypeScript가 복원 가능한 상태로 노출됐다.

드러난 내용에는 시스템 프롬프트와 툴 사용 로직뿐 아니라 미공개 기능도 섞여 있었다. 상시 백그라운드 에이전트 기능인 KAIROS, 앤스로픽 직원이 사내 저장소가 아닌 곳에서 클로드코드를 쓸 때 커밋 공동저자 표기를 자동으로 지우는 언더커버 모드 같은 것들이다. 앤스로픽은 이를 "보안 침해가 아니라 배포 패키징 실수"라고 밝히며 고객 데이터나 자격 증명 유출은 없었다고 선을 그었다. 자동화되지 않은 수동 배포 단계가 원인으로 지목됐다.

두 사고의 공통점은 소스맵을 통해 소스가 노출됐다는 점이다. CLI나 데스크톱 앱을 직접 배포하는 1인 개발자나 소규모 팀이라면, 빌드 파이프라인에서 소스맵 옵션이 프로덕션용으로 꺼져 있는지 한 번은 확인해 볼 계기다.

포크는 해뒀지만 아직 열어보지 않은 사람들

저장소를 받아만 두고 실제로 코드를 뜯어본 사람은 많지 않았다. 방에서 나온 반응도 다르지 않았다. 수천 건에 이르는 포크 중 상당수가 비슷한 처지일 가능성이 크다. 바깥 반응에도 온도차가 있었다. 프로덕션 에이전트의 내부 설계를 공부할 자료가 생겼다며 반기는 쪽과, 재구성판을 그대로 실사용에 올리기엔 이르다고 보는 쪽이 갈렸다. 후자에는 지적이 여러 겹 쌓였다. Grok Bot은 아직 베타 단계이고, 감사 로그 기능은 "제공 예정" 상태로 남아 있다. 봇마다 별도 계정이 아니라 한 계정과 한 세트의 로그인을 공유한다는 점도 걸린다.

재구성 저장소가 쥐여주는 건 다른 모델로 갈아탈 수 있는 배관이지, 그 자체로 신뢰할 수 있는 완성품은 아니다. 포크해 둔 사람들이 다음으로 열어볼 곳은 라우터 설정 화면보다, 로컬 VM 토글을 켰을 때 실행 데몬이 어떤 권한으로 실제 도구를 호출하는지 쪽에 가깝다.

Grok Bot소스맵Cursor클로드코드OpenRouter소스코드 유출xAI

참고 링크

자주 묻는 질문

Q

Grok Bot 0.18.0 재구성 저장소는 무엇인가?

xAI의 코딩 에이전트 Grok Bot 0.18.0 macOS 앱이 소스맵을 켠 채 배포된 걸 이용해 시스템 프롬프트·툴 정의·라우팅 로직 등 내부 TypeScript 소스를 복원한 비공식 저장소다. GitHub에 grok-bot-0.18-reconstructed로 공개돼 수천 건의 스타와 포크를 모았다.

Q

재구성 저장소로 다른 모델을 쓸 수 있나?

설정의 라우터 화면에서 기본값인 Cursor 대신 Codex나 OpenRouter로 백엔드를 바꿀 수 있고, 로컬 도커 VM 토글을 켜면 Cursor의 원격 샌드박스 대신 로컬 컨테이너에서 실행할 수 있다.

Q

클로드코드도 비슷한 소스맵 유출을 겪었나?

2026년 3월 30일 @anthropic-ai/claude-code 2.1.88이 소스맵 파일을 npm에 그대로 올려 시스템 프롬프트와 미공개 기능이 노출됐다. 앤스로픽은 보안 침해가 아닌 패키징 실수라고 밝혔다.

같은 주제 더 보기