피드로 돌아가기
Why Claude Code's Source Code Leaked — And It Wasn't Simple Human Error
Dev.toDev.to
DevOps

Anthropic Claude Code CI 파이프라인의 source map 삭제 실패와 공개 R2 버킷 접근이 결합되어 512,000줄 TypeScript 소스코드가 유출된 사건

Why Claude Code's Source Code Leaked — And It Wasn't Simple Human Error

notURandomDev2026년 4월 1일3intermediate

Context

Claude Code는 대규모 엔지니어링 프로젝트로 CI/CD 파이프라인을 운영하며, Sentry 기반 프로덕션 에러 모니터링을 위해 빌드 시 source map을 생성한다. CI 빌드 산출물에서 source map 파일을 삭제하는 후속 단계는 독립된 파이프라인 job으로 실행된다.

Technical Solution

  • CI 파이프라인 → source map 파일 삭제를 별도 job 단계로 분리하고 실패 시 파이프라인 중단 설정
  • 삭제 스크립트 → **/*.map globstar 패턴 적용 및 경로 동적 검증 로직 추가
  • Cloudflare R2 버킷 → 비공개 접근 제어 정책 적용 및 ACL/Army 설정 검증
  • npm publish 전 → source map 포함 여부 자동 검사 스크립트 실행
  • Sentry 연동 → sourcesContent 필드 제거 또는 선택적 업로드 옵션 검토

Impact

512,000줄 TypeScript 소스코드가 npm 패키지 및 R2 버킷을 통해 외부 노출됨. 프로젝트 전체 디렉토리 구조와 핵심 심볼명이 유출되어 코드 로직 역공학 가능.

Key Takeaway

단일 실패는 무해하지만, 두 가지 독립적인 설정 오류가 결합되면 catastrophic한 결과를 초래한다. AI 가속 개발 환경에서는 파이프라인 방어机制的 설계와 스토리지 접근 제어의 중요성이 더욱 커진다.


CI/CD 파이프라인 환경에서 핵심 빌드 산출물 삭제 단계를 set -e 옵션과 함께 실행하고, 삭제 실패 시 파이프라인을 중단(block)하는 방식으로 적용 시 민감 파일의 의도치 않은 배포를 방지할 수 있다

원문 읽기