Claude Code 소스코드 유출, 이게 두 번째입니다

Published on

in

Claude Code 소스코드 유출, 이게 두 번째입니다

2026.04.01 기준
Claude Code v2.1.88
TECH 테마

Claude Code 소스코드 유출,
이게 두 번째입니다

2026년 3월 31일 저녁, 보안 연구자 Chaofan Shou가 X에 짧은 글을 올렸습니다. “Claude Code 소스코드가 npm 레지스트리 맵 파일을 통해 유출됐다.” 이 게시물은 3시간 만에 조회수 310만을 넘겼습니다. 그리고 이건 처음 있는 일이 아닙니다.

512,000+
유출된 코드 줄 수
44개
미출시 피처 플래그
2번째
동일 유형 사고 (1년 내)

사고 경위: 59.8MB짜리 실수

Claude Code 소스코드 유출의 발단은 단 하나의 파일이었습니다. @anthropic-ai/claude-code npm 패키지 버전 2.1.88cli.js.map 파일이 그대로 실려 나간 겁니다. 크기는 59.8MB. 소스맵 파일이란 번들링·압축된 코드를 원본 소스와 연결해주는 디버깅용 도구인데, 이게 프로덕션 배포 패키지에 들어갔습니다.

더 결정적인 건 그 맵 파일이 Anthropic의 Cloudflare R2 스토리지 버킷에 올려진 ZIP 아카이브를 직접 가리키고 있었다는 점입니다. Chaofan Shou가 링크를 공개하자 개발자들은 ZIP을 즉시 다운로드했고, 수시간 내 GitHub에 백업됐습니다. 현재까지 해당 저장소는 41,500회 이상 포크됐습니다. (출처: The Register, 2026.03.31)

개발자 Gabriel Anhaia의 분석에 따르면, .npmignore 또는 package.jsonfiles 필드 하나를 잘못 설정하면 전체 소스가 노출될 수 있습니다. 연간 $140억(약 19조 원) 규모 매출을 올리는 AI 기업이 npm 패키지 설정 하나를 놓친 것입니다. (출처: Forbes, 2026.02.17 — Anthropic 연환산 매출 기준)

💡 공식 배포 패키지와 내부 빌드 파이프라인을 비교해보니, 이번 사고는 자동화되지 않은 수동 배포 단계에서 발생했습니다. Boris Cherny(Claude Code 창시자)가 직접 “자동화됐어야 할 수동 단계가 있었다”고 밝혔습니다. (출처: x.com/bcherny, 2026.04.01)

▲ 목차로 돌아가기

유출된 것들: 51만 줄, 그게 전부가 아닙니다

ZIP 아카이브에는 TypeScript로 작성된 약 1,900개 파일, 512,000줄 이상의 코드가 담겨 있었습니다. (출처: Cybersecurity News, 2026.03.31) 단순한 소스코드 덩어리가 아닙니다. Claude Code가 어떻게 동작하는지 전체 구조가 다 들어있습니다.

주요 파일 규모 내용
QueryEngine.ts 약 46,000줄 LLM API 호출·스트리밍·토큰 추적의 핵심 엔진
Tool.ts 약 29,000줄 에이전트 도구 타입 정의 및 권한 스키마
commands.ts 약 25,000줄 슬래시 명령어 85개 등록·실행 로직
src/ 전체 1,900개 파일 도구 40개, 슬래시 명령 85개, 멀티에이전트 오케스트레이션

런타임은 Node가 아니라 Bun이고, 터미널 UI는 React + Ink 구조로 돼 있습니다. 컴포넌트 기반 상태 관리를 CLI에 적용했다는 건, 웹 앱 수준의 UI 아키텍처를 터미널에 그대로 가져온 것입니다. 내부 OAuth 2.0 인증 흐름, VS Code·JetBrains와 통신하는 JWT 인증 기반 IDE 브리지 시스템, 세션 간 컨텍스트를 저장하는 파일 기반 영구 메모리 디렉터리까지 통째로 노출됐습니다. (출처: dev.to/gabrielanhaia, 2026.03.31)

경쟁사들이 Claude Code를 분석하고 싶었다면 굳이 리버스 엔지니어링을 할 필요가 없게 됐습니다. 내부 시스템 프롬프트, 권한 게이트 구조, OAuth 인증 흐름이 전부 공개된 상태이기 때문입니다.

▲ 목차로 돌아가기

이미 만들어진 기능들, 아직 당신한테 안 켜진 것들

이번 유출이 특히 화제가 된 이유는 44개의 피처 플래그 때문입니다. “이런 기능이 기획 중”이 아닙니다. 코드가 이미 다 작성돼 있고, 배포 빌드에서 false로 설정된 스위치 하나만 꺼져 있는 상태입니다. (출처: The AI Corner, 2026.04.01)

🤖 KAIROS — 항상 켜져 있는 Claude

세션이 끊겨도 계속 작동하는 상시 에이전트 모드. 자정마다 메모리 정리(“dreaming”) 루틴이 실행되고, 사용자 개입 없이 작업을 스스로 시작할 수 있습니다.

🐾 BUDDY — 다마고치형 AI 펫

사용자 ID 해시로 고유하게 생성되는 캐릭터. 종류만 18종(오리·드래곤·악솔로틀·카피바라 등), 희귀도는 1% 전설 등급까지 있으며 4월 1~7일 파일럿 오픈 예정이었습니다.

🎤 VOICE_MODE — 음성 코딩

별도 CLI 진입점이 존재하는 완성된 음성 명령 모드. 말로 코딩 지시를 내리는 기능이 이미 구현돼 있습니다.

🌐 ULTRAPLAN — 원격 30분 플래닝

클라우드에서 30분짜리 원격 플래닝 세션을 실행하는 기능. 멀티 Claude가 병렬로 계획을 세우는 구조입니다.

GitHub 웹훅과 푸시 알림으로 동작하는 24시간 백그라운드 에이전트, Playwright 기반 실제 브라우저 조작(web_fetch가 아닌 실브라우저), Cron 스케줄링, 에이전트 슬립·자기 재개 기능도 이미 코드로 구현돼 있습니다. Anthropic이 2주마다 신기능을 공개할 수 있는 건 이미 전부 만들어져 있기 때문입니다.

💡 공식 릴리스 속도와 내부 개발 속도를 나란히 놓고 보면 이런 그림이 됩니다. Anthropic은 완성된 기능을 단계적으로 공개하는 속도 조절 전략을 쓰고 있으며, 이번 유출로 그 전체 로드맵이 한꺼번에 드러났습니다.

▲ 목차로 돌아가기

1년 만에 두 번 — 실수가 아니라 구조의 문제

이번 사고를 “실수”로만 보면 놓치는 게 있습니다. 2025년 2월에도 동일한 방식으로 소스맵이 노출된 사건이 있었고, 그때 패치됐다고 알려졌습니다. (출처: Hacker News 커뮤니티 스레드, 2026.03.31 — “This isn’t even the first time – something similar happened back in February 2025”) 13개월 만에 같은 유형의 사고가 반복됐습니다.

Claude Code 창시자 Boris Cherny는 이 사고에 대해 공개 코멘트를 남겼습니다. “실수는 생깁니다. 팀으로서 중요한 건 이게 특정 개인의 잘못이 아니라는 점을 인식하는 것입니다 — 프로세스, 문화, 또는 인프라의 문제입니다. 이번 경우엔 자동화됐어야 할 수동 배포 단계가 있었습니다.” (출처: x.com/bcherny, 2026.04.01) 문제는 담당자가 아니라 배포 파이프라인 자체에 있었습니다.

⚠️ 소스맵 파일은 프로덕션 npm 패키지에 포함될 이유가 없습니다. 디버깅 용도로만 쓰이는 도구인데, 두 번 연속으로 배포 전 자동 검증 단계가 작동하지 않았습니다. npm pack --dry-run 명령으로 배포 전 포함 목록을 확인하는 것이 기본적인 예방책입니다.

팀 내 빌드·배포 자동화가 충분하지 않을 때 어떤 일이 생기는지 보여주는 사례입니다. Claude Code는 현재 연환산 $25억(약 3.4조 원) 매출을 기록하고 있는 상품인데 (출처: Forbes, 2026.02.17), 그 제품의 전체 소스코드가 npm 설정 하나로 외부에 공개됐습니다.

▲ 목차로 돌아가기

Anthropic의 공식 입장과 실제로 일어난 일

Anthropic은 The Register에 공식 성명을 보냈습니다. “오늘 Claude Code 릴리스에 일부 내부 소스코드가 포함됐습니다. 이는 보안 침해가 아니라 인적 오류로 인한 릴리스 패키징 문제입니다. 고객 데이터나 자격증명은 포함되지 않았으며, 재발 방지 조치를 적용 중입니다.” (출처: The Register, 2026.03.31)

Anthropic은 원본 패키지를 npm에서 제거했고, 소스코드를 GitHub에 올렸던 최초 업로더(instructkr)는 법적 책임 우려로 저장소를 Python 기반 클린룸 재작성 프로젝트로 교체했습니다. 하지만 이미 41,500개 이상의 포크가 생성된 상태입니다. 인터넷은 기다려주지 않습니다.

Anthropic이 다른 저장소들의 삭제를 요청할 것인지에 대해서는 공식적으로 별도 입장을 내놓지 않았습니다. 지식재산권 침해 여부는 법적으로 복잡한 문제인 데다, 이미 대규모로 퍼진 코드를 회수하기도 현실적으로 어렵습니다.

💡 Claude Code 서비스 장애와 시점이 겹칩니다. 3월 31일 17:45 UTC부터 4월 1일 05:52 UTC까지 Claude Opus 4.6, Sonnet 4.6에서 타임아웃 급증 장애가 발생했습니다. 소스코드 노출 발견 시점과 거의 같습니다. Boris Cherny는 장애 원인도 수동 배포 단계였다고 밝혔습니다. (출처: status.claude.com) 같은 날, 같은 원인 구조였습니다.

▲ 목차로 돌아가기

Claude Code를 지금 쓰는 팀이 알아야 할 것

이번 유출로 개인정보나 사용자 데이터가 노출된 건 아닙니다. Anthropic도 공식적으로 그 부분을 확인했습니다. 실질적인 영향은 Anthropic의 지식재산권 쪽에 있습니다. 그렇다면 Claude Code를 업무에 쓰는 팀은 지금 당장 뭘 확인해야 할까요?

첫째, Claude Code는 코드 컨텍스트를 Anthropic 서버로 전송합니다. 이건 이번 사고 이전부터 알려진 사실이고, 민감한 코드를 다루는 팀이라면 별도 검토가 필요한 부분입니다. (출처: Milvus AI 공식 FAQ) 이번 유출과 직접 관련된 건 아니지만, 아키텍처를 파악하기 좋은 시점이기도 합니다.

둘째, 공개된 내부 OAuth 인증 흐름과 IDE 브리지 통신 구조가 악용될 가능성에 대해 Anthropic은 아직 구체적인 언급을 내놓지 않았습니다. 공식 보안 권고사항 페이지를 모니터링하는 것이 현실적인 대응입니다.

셋째, 본인 팀의 npm 패키지 배포 파이프라인을 점검하기 좋은 계기입니다. npm pack --dry-run으로 배포 전 포함 목록을 확인하고, .npmignore 또는 package.json files 필드가 올바르게 설정돼 있는지 확인해 보세요. Anthropic만의 문제가 아닙니다.

▲ 목차로 돌아가기

Q&A

Q1. 이번 유출로 내 코드나 데이터가 외부에 노출된 건가요?

Anthropic 공식 입장에서 “고객 데이터나 자격증명은 포함되지 않았다”고 명확히 밝혔습니다. (출처: The Register, 2026.03.31) 이번 유출은 Anthropic의 소스코드 자체가 외부에 공개된 것이지, 사용자 데이터 침해는 아닙니다.

Q2. 유출된 소스코드를 보거나 다운로드하면 법적으로 문제가 되나요?

Anthropic이 GitHub 저장소 삭제를 요청할지 여부에 대해 공식 입장을 내놓지 않은 상태입니다. 최초 업로더가 법적 책임을 우려해 스스로 저장소를 교체했을 만큼 지식재산권 측면에서 민감한 영역입니다. 상업적 활용이나 배포는 특히 주의가 필요합니다.

Q3. 44개 미출시 기능은 언제 공식으로 나오나요?

Anthropic이 공식 출시 일정을 밝히지 않은 상태입니다. BUDDY 기능의 경우 유출된 코드에 “4월 1~7일 파일럿, 5월 본격 오픈” 일정이 명시돼 있었지만, 유출 이후 공식 발표가 나올 가능성도 있고 일정이 변경될 수도 있습니다.

Q4. 소스맵 파일이 왜 위험한가요?

소스맵 파일(.map)은 압축·난독화된 JavaScript를 원본 TypeScript로 역추적하는 디버깅 도구입니다. 프로덕션 배포 패키지에 포함될 경우, 원본 소스코드를 그대로 읽을 수 있는 상태가 됩니다. 이번처럼 R2 스토리지 링크까지 포함돼 있으면 소스코드 전체를 직접 다운로드할 수도 있게 됩니다.

Q5. 이번 사고가 Claude Code를 계속 써도 되는지 판단에 영향을 주나요?

이번 유출 자체는 사용자 데이터 침해가 아닙니다. 다만 동일 유형 사고가 13개월 만에 반복됐다는 사실, 그리고 코드 컨텍스트가 Anthropic 서버로 전송된다는 기존 구조는 민감한 코드베이스를 다루는 팀이 별도로 검토할 부분입니다. 공식 보안 정책 문서(code.claude.com/docs)를 확인하고 팀 정책에 맞게 판단하는 것이 적절합니다.

▲ 목차로 돌아가기

마치며

솔직히 말하면, 이번 사건에서 제일 인상적인 건 유출 내용보다 Boris Cherny의 반응이었습니다. “개인의 잘못이 아니라 프로세스의 문제”라고 공개적으로 인정한 것은, 빠르게 성장하는 AI 팀이 내부적으로 어떻게 사고를 다루는지 보여줍니다. 숨기거나 변명하지 않고 시스템을 고치겠다는 방향으로 간 겁니다.

한편으로는 $25억 매출 제품의 전체 소스코드가 npm 설정 하나로 나갔다는 사실이 여전히 묵직합니다. 자동화되지 않은 배포 프로세스가 어떤 결과를 낳는지, 그리고 같은 실수가 왜 반복되는지에 대한 질문은 Anthropic뿐 아니라 모든 팀에게 유효합니다.

44개 미출시 기능의 내용은 솔직히 흥미롭습니다. KAIROS, BUDDY, VOICE_MODE가 이미 코드로 완성돼 있다는 건, 앞으로 Claude Code의 방향이 어디로 가는지를 미리 본 셈입니다. 의도된 공개는 아니었지만, 결과적으로 로드맵이 드러났습니다.

▲ 목차로 돌아가기

본 포스팅 참고 자료

  1. ① The Register — Anthropic accidentally exposes Claude Code source code (2026.03.31) · 링크
  2. ② Cybersecurity News — Claude Code Source Code Reportedly Leaked Via npm Registry (2026.03.31) · 링크
  3. ③ dev.to/gabrielanhaia — Claude Code’s Entire Source Code Was Leaked via npm Source Maps (2026.03.31) · 링크
  4. ④ Boris Cherny 공식 X 코멘트 — Claude Code 장애 사후 회고 (2026.04.01) · 링크
  5. ⑤ Forbes — Anthropic Is Cashing In On Claude Code’s Success (2026.02.17) · 링크

※ 본 포스팅 작성 이후 서비스 정책·UI·기능이 변경될 수 있습니다. Claude Code는 지속적으로 업데이트되는 서비스이며, 본문 내 수치·기능·정책은 2026.04.01 기준으로 작성됐습니다. 이후 변경사항은 Anthropic 공식 채널에서 확인하세요. 본 포스팅은 교육·정보 제공 목적으로 작성됐으며, 유출된 소스코드의 배포·상업적 활용을 권장하지 않습니다.

댓글 남기기


최신 글


아이테크 어른경제에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기