2026년 Claude Code 유출 사건 — 유출된 512,000줄의 소스 코드가 실제로 밝혀낸 것
요약
Anthropic의 패키징 오류로 인해 Claude Code의 소스 코드 512,000줄이 유출된 사건을 다룹니다. 유출된 코드를 통해 Claude Code의 3계층 메모리 아키텍처와 자율형 에이전트인 KAIROS의 존재가 드러났습니다.
핵심 포인트
- Bun 번들러 버그와 설정 오류로 인한 소스 코드 노출
- 3계층 메모리 아키텍처(MEMORY.md 기반 인덱싱) 확인
- 자율형 백그라운드 에이전트 'KAIROS'의 구조 노출
- 고객 데이터 및 자격 증명 유출은 없었음을 확인
2026년 3월 31일, AI 산업 역사상 가장 이례적인 사건 중 하나가 발생했습니다. 이는 사이버 공격이나 스파이 행위가 아닌, .npmignore 파일의 단 한 줄이 누락되면서 벌어진 일이었습니다.
Anthropic은 릴리스 패키징 (release packaging) 과정에서의 인적 오류로 인해 자사의 인기 AI 코딩 어시스턴트인 Claude Code의 전체 소스 코드를 실수로 노출했습니다. 약 1,900개 파일에 걸친 512,000줄의 난독화되지 않은 TypeScript 코드가 npm 패키지 안에 포함되어 배포되었습니다. 불과 몇 시간 만에 해당 코드는 미러링(mirrored)되었고, 해부되었으며, Python과 Rust로 재작성되었고, 수만 명의 개발자들에 의해 연구되었습니다. The Hacker NewsLayer5
유출이 발생한 경위
2026년 3월 31일, Anthropic은 공개 npm 패키지인 @anthropic-ai/claude-code 버전 2.1.88에 포함된 59.8 MB 크기의 JavaScript 소스 맵 (source map) 파일을 통해 Claude Code의 전체 소스 코드를 실수로 노출했습니다. Zscaler
Anthropic이 2024년 말 Bun을 인수했을 때, Claude Code는 번들러 (bundler)로 Bun을 사용하도록 마이그레이션했습니다. Bun의 번들러에는 알려진 버그가 있습니다. 즉, development: false를 명시적으로 설정하더라도 소스 맵이 여전히 생성되고 제공된다는 점입니다. 노출 상황을 더욱 악화시킨 것은 해당 소스 맵이 Anthropic 소유의 Cloudflare R2 버킷에 호스팅된 ZIP 파일을 참조하고 있었으며, 이 버킷은 인증 없이도 공개적으로 접근이 가능했다는 사실입니다. NodeSource
미 동부 표준시(ET) 기준 오전 4시 23분, 보안 연구원 Chaofan Shou가 X를 통해 이 발견을 전파했습니다. 몇 시간 이내에 512,000줄의 TypeScript 코드베이스는 GitHub 전체에 미러링되었고 수천 명의 개발자에 의해 분석되었습니다. VentureBeat
단 하나의 GitHub 미러 저장소(repository)가 두 시간 만에 50,000개 이상의 스타(stars)를 모았는데, 이는 아마도 GitHub 역사상 가장 빠르게 성장하는 저장소일 것입니다. Anthropic이 약 08:00 UTC에 패키지를 회수했을 때, 코드는 이미 41,500회 이상 포크(forked)되었고 탈중앙화 호스팅 플랫폼으로 미러링된 상태였습니다. Tech Insider
Anthropic의 공식 성명은 모든 매체에 걸쳐 일관되었습니다: "이는 보안 침해(security breach)가 아니라 인적 오류로 인해 발생한 릴리스 패키징 문제입니다."
"우리는 이러한 일이 다시 발생하지 않도록 방지 조치를 시행하고 있습니다." Anthropic은 고객 데이터나 자격 증명(credentials)은 포함되지 않았음을 확인했습니다. InfoQ
소스 코드가 밝혀낸 것
이번 유출은 단순히 당혹스러운 사건을 넘어 진정으로 흥미로웠습니다. 개발자들이 내부에서 발견한 내용은 다음과 같습니다.
CLAUDE.md를 일급 메모리(first-class memory)로 활용
유출된 코드는 정교한 3계층 메모리 아키텍처(three-layer memory architecture)를 드러냈습니다. 그 핵심에는 컨텍스트(context)에 지속적으로 로드되는 포인터들의 경량 인덱스인 MEMORY.md가 있습니다. 이 인덱스는 데이터가 아닌 위치를 저장합니다. 실제 프로젝트 지식은 필요할 때마다 가져오는 주제별 파일(topic files)에 분산되어 있으며, 원시 트랜스크립트(raw transcripts)는 컨텍스트로 완전히 다시 읽히지 않고 특정 식별자를 검색하는 용도로만 사용됩니다. VentureBeat
KAIROS — 자율형 백그라운드 에이전트
KAIROS는 사용자 경험의 근본적인 변화를 의미합니다: 바로 자율 데몬 모드(autonomous daemon mode)입니다. 현재의 AI 도구들이 주로 반응형(reactive)인 반면, KAIROS는 Claude Code가 항상 켜져 있는 백그라운드 에이전트로서 작동할 수 있게 합니다. 이는 백그라운드 세션을 처리하며, 사용자가 유휴 상태일 때 에이전트가 메모리 통합(memory consolidation)을 수행하는 autoDream이라는 프로세스를 사용합니다. 이 과정에서 에이전트는 관찰 내용을 병합하고, 논리적 모순을 제거하며, 모호한 통찰을 절대적인 사실로 변환합니다. VentureBeat
숨겨진 기능과 이스터 에그(easter eggs)
코드를 파헤치던 개발자들은 18종의 종, 샤이니(shiny) 변종, 절차적으로 생성된 능력치, 그리고 ASCII 아트 스프라이트를 갖춘 /buddy라는 이름의 완전한 다마고치 스타일의 반려동물 동반 시스템을 발견했습니다. 당신의 버디는 사용자 ID 해시(user ID hash)로부터 결정론적으로 선택됩니다. 또한 발견된 것은 ULTRAPLAN으로, 이는 복잡한 계획 수립을 원격 Opus 세션으로 오프로딩(offloading)하며, 해당 세션은 계획을 로컬 터미널로 다시 전송하기 전에 최대 30분 동안 생각할 시간을 갖습니다. NodeSource
논란이 된 언더커버 모드(Undercover Mode)
가장 논란이 된 발견은 약 90줄 분량의 undercover.ts였습니다. 이 코드는 Claude에게 자신이 AI라는 사실을 절대 언급하지 말 것과, 외부 저장소(external repositories)에 기여할 때 모든 Co-Authored-By 속성을 제거하도록 지시하는 시스템 프롬프트(system prompt)를 주입합니다.
이 모드는 Anthropic 직원들에게 활성화되며, 이를 끌 수 있는 스위치는 없습니다. 시스템이 내부 저장소(internal repo)에서 작동하고 있다는 확신이 들지 않으면, 은밀한 상태(undercover)를 유지합니다. Layer5
이 상황의 아이러니는 널리 지적되었습니다. Anthropic은 Anthropic의 내부 기밀이 외부 컨텍스트로 유출되는 것을 방지하기 위해 '언더커버 모드(Undercover Mode)'를 특별히 구축했으나, 정작 .npmignore 설정 실수로 인해 모든 것을 유출해 버렸습니다. Layer5
증류 방지 가드 (Anti-distillation guards)
ANTI_DISTILLATION_CC 플래그는 API 요청에 가짜 도구 정의(fake tool definitions)를 주입하도록 트리거하며, 이는 API 트래픽을 기록하는 경쟁사들의 학습 데이터(training data)를 오염시키기 위해 설계되었습니다. Layer5
동시다발적인 공급망 공격 (The concurrent supply chain attack)
상황은 더 악화됩니다. 유출 사건과 시기적으로 겹치지만 이와는 전혀 무관한, npm에 대한 실제 공급망 공격(supply chain attack)이 발생했습니다. 널리 사용되는 axios HTTP 라이브러리의 악성 버전이 원격 액세스 트로이목마(Remote Access Trojan)를 포함한 채 배포되었습니다. 만약 2026년 3월 31일 00:21 UTC에서 03:29 UTC 사이에 npm install을 실행했거나 Claude Code를 업데이트했다면, lockfile에서 axios 버전 1.14.1 또는 0.30.4와 의존성 plain-crypto-js를 확인하십시오. DEV Community
AI 코딩 도구에 미치는 의미 (What it means for AI coding tools)
Claude Code 유출은 AI 코딩 도구의 경쟁 구도를 변화시킵니다. 전략적 손실은 코드 자체의 손실보다 더 클 가능성이 높습니다. 기능 플래그(feature flag)의 이름만으로도 코드보다 더 많은 것을 드러내기 때문입니다. KAIROS, 증류 방지 플래그(anti-distillation flags), 모델 코드네임(model codenames) 등은 경쟁사들이 이제 이를 바탕으로 계획을 세울 수 있는 제품 전략 결정 사항들입니다. 코드는 일주일이면 리팩터링(refactor)할 수 있지만, 유출된 로드맵은 되돌릴 수 없습니다. Layer5
이 코드를 읽은 모든 경쟁사는 이제 법적으로 "오염(contaminated)"된 상태입니다. 이미 등장하고 있는 Rust 기반의 Claw-Code 재작성 사례와 같은 클린룸 구현(Clean-room implementations)이 유력한 법적 해결책이 될 것입니다. 즉, 소스 코드가 아닌 테스트 스위트(test suite)의 동작만을 분석하고 명세(spec)로부터 구현하는 방식입니다. NodeSource
개발자가 해야 할 일 (What developers should do)
Claude Code를 사용하는 경우:
lockfiles를 확인하십시오 — plain-crypto-js, axios 1.14.1 또는 0.30.4를 검색하십시오
npm 배포판 대신 네이티브 설치 프로그램 (native installers)을 사용하십시오
유출된 코드라고 주장하는 어떠한 GitHub 리포지토리(repository)도 다운로드하지 마십시오 — 많은 것들이 멀웨어 함정 (malware traps)입니다
3월 31일 00:21에서 03:29 UTC 사이에 npm을 통해 Claude Code를 업데이트했다면 모든 비밀 정보 (secrets)를 교체(rotate)하십시오
유출 이후의 코딩 도구 환경 (The coding tools landscape after the leak)
Claude Code 유출 사건은 AI 코딩 도구 분야가 얼마나 경쟁적이고 빠르게 변화하고 있는지를 상기시켜 줍니다. 만약 대안을 평가하고 있거나 Claude Code가 GitHub Copilot, Cursor, Windsurf 또는 Codeium과 어떻게 비교되는지 알고 싶다면, 저희가 모두 검토하였습니다:
Claude Code 리뷰 및 대안 (Claude Code review and alternatives)
GitHub Copilot vs Claude Code
2026년 최고의 AI 코딩 도구 (Best AI coding tools in 2026)
AsmiAI는 30개의 AI 코딩 어시스턴트 (AI coding assistants)를 포함하여 250개의 AI 도구를 리뷰합니다 — 정직한 가격 정보, 무료 플랜 제공 여부, 그리고 asmiai.xyz에서의 일대일 비교를 확인하십시오.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기