피드로 돌아가기
Dev.toAI/ML
원문 읽기
개발자가 Claude Code 12버전을 역분석하여 스트리밍 워치독 버그 3개를 발견하고 소스맵 유출 사실을 공개했다
We Reverse-Engineered 12 Versions of Claude Code. Then It Leaked Its Own Source Code.
AI 요약
Context
Claude Code CLI 도구는 Opus 4.6 모델의 코딩 능력을 제공하지만 스트리밍 프로토콜 처리 불안정으로 세션 손실을 반복했다. 개발자는 문제 해결을 위해 12개 버전(v2.1.74~v2.1.88)을 역분석했다. 1,571개 세션, 148,444건의 도구 호출을 분석한 결과 전체 도구 호출의 5.4%가 고아가 되었고 메모리 누수(13.81GB, 15.40GB)가 발생했다. 워치독 메커니즘은 기본 비활성화이며 초기 연결 단계만 보호한다.
Technical Solution
- npm pack @anthropic-ai/claude-code로 cli.js 다운로드 후 grep, tr, node 스크립트로 라인 분리
- CLAUDE_ENABLE_STREAM_WATCHDOG 환경 변수로 워치독 활성화 후 중단 감소 확인
- ccdiag Go CLI 도구로 세션 JSONL 파일 자동 분석
- Bug 1: 워치독 초기화 지연으로 do-while 루프 보호 불가
- Bug 2: 초기 연결 단계에서 abort 함수가 undefined 객체 호출하여 무효화
- Bug 3: 폴백 메커니즘이 초기 연결 단계에서 절대 트리거되지 않음
Impact
GitHub 이슈(#6836, #26224, #20171)에 150건 이상의 유사 보고가 있었다. 소스맵 유출로 64,464줄의 TypeScript 코드가 공개되었으며, regex sentiment detection과 비정상적 attestation 시스템이 발견되었다.
Key Takeaway
워치독 보호 기능은 SSE 이벤트 처리만 담당하며 초기 연결 단계(실제 중단 발생 지점)에서는 완전 무력화 상태였다. 사용자 분석 결과가 201 upvotes에도 공식 응답이 없었다.
실천 포인트
긴 시간 세션 환경에서 Claude Code 사용 시 CLAUDE_ENABLE_STREAM_WATCHDOG=true 설정으로 중단 빈도를 줄일 수 있다