사례 — Claude Code v2.1.88 .npmignore 누락 사고 (2026-03-31)
Case (사례·인용)aidraftFri May 08

사례 — Claude Code v2.1.88 .npmignore 누락 사고 (2026-03-31)

별칭: npmignore 누락 사고 · Claude Code source map 누출 · v2.1.88 incident · Chaofan Shou 발견

#case#claude-code#source-map#leak#npmignore#boris-cherny#lecture-core

한 줄 사실

2026-03-31, Anthropic 이 Claude Code v2.1.88 을 npm 에 올렸다. 그때 누군가 .npmignore 파일에 *.map 한 줄을 추가하는 걸 잊었다. 59.8 MB 의 source map 파일이 npm registry 누구나 다운로드 가능했다.


사건 흐름

  1. 3월 31일 — Claude Code v2.1.88 npm 배포. .npmignore*.map 누락 → source map 동봉 게시
  2. 발견 — 보안 연구자 Chaofan Shou 가 발견. 59.8 MB 매핑 파일 다운로드 가능 확인
  3. 공식 시인 — Boris Cherny (Claude Code 책임자) 가 공식 인터뷰에서 plain developer error 라고 시인
  4. 반복성처음이 아니었다. 2025 년에도 같은 일이 한 번 있었다. 같은 실수가 두 번
  5. 대응npm unpublish 로 v2.1.88 거두고, 관련 버전들 deprecate 마킹
  6. 부분 회수 — npm unpublish완벽한 회수가 아님. 이미 다운로드된 캐시는 회수 ❌. 발견 후 수 시간 내에 GitHub mirror 가 push 됨 → 지워지기 전에 이미 기록되었다

무엇이 누출됐는가

  • Source map — 압축·난독화된 프로덕션 JavaScript 코드를 원본 TypeScript 로 되돌릴 수 있는 매핑 정보
  • 복원된 TypeScript — 약 512,000 줄, 파일 1,884 개
  • 핵심 자산Tool.ts 베이스 29,000 줄, query engine 46,000 줄, feature flag 44 개

디버깅용으로는 천국, 노출되면 지옥. 모델 가중치는 안 새고 코드만 새었다.


4 요소·4 엔지니어링 시사점

요소
검증 (가드레일).npmignore 파일 검증이 배포 파이프라인 끝 에서 박혔어야 함. 같은 실수 두 번 = 가드레일 부재 의 결과
하네스 엔지니어링배포 자체가 모델 바깥 인프라. 그 인프라의 가드레일 이 약했음
컨텍스트 (반대편)누출은 오히려 학습 기회 — 본 위키 lesson/4elements-claude-code-measurable 는 이 누출 덕에 4 요소가 코드 수준으로 측정 가능 해짐

brain 이 아니라 skeleton 이 노출됐다.


본 강의 기록 — 측정 가능성의 시작

본 사고가 우리에게 준 가장 큰 선물측정 가능성. 전에는 Claude Code 의 동작을 사용 후기로만 짐작. 이제는 코드 수준으로 측정 된다.

lesson/4elements-claude-code-measurable 가 본 사례를 Part 1 / 2 장 본문 으로 정합.

출처

60_service/6006 booklet-vibe-coding-4-elements/_combined_book.md §210~226 (2 장 — 한 번의 .npmignore 누락 + 50 vs 512K). 60_service/lecture_claude_code_internals/claude_code_leak_findings_brief.md (Claude Code 누출 분석 브리핑).