무슨 일이 있었나
AIR Security 연구원(Or Nevo, Dor Granat, Niv Hoffman)은 2026년 9월 17-18일에 4대 주요 AI 코딩 에이전트가 모두 SHA-pinned 플러그인/스킬 설치 검증 방식에서 동일한 결함을 공유한다고 공개했습니다: PIN은 fetch 시점에 확인되지만 실제 checked-out HEAD에 대해 재검증되지 않습니다. 이것은 모델이나 에이전트 런타임 자체가 아니라 AI 에이전트 배포 계층을 대상으로 하는 첫 번째로 식별된 supply-chain 취약점입니다.
왜 중요한가
플러그인은 에이전트를 실행하는 개발자의 모든 권한을 상속합니다 — 소스 코드, 클라우드 자격증명, SSH 키, CI/CD 시크릿, 프로덕션 접근권. 결함이 보안 인식 조직이 의존하는 정확한 보안장치(SHA pinning)를 무효화하기 때문에, 모든 것을 올바르게 수행해도(플러그인 검토 및 pinning) 실제 보호를 제공하지 않습니다. 동일한 설계 오류가 모든 주요 AI 코딩 에이전트 공급업체에서 독립적으로 발생했으며, 이는 클래식 소프트웨어 supply-chain rug-pull 공격을 반영하지만 zero-click, cross-vendor 규모인 AI-agent supply chain의 체계적인 blind spot을 나타냅니다.
공격 경로
4대 에이전트 모두 SHA-pinned 플러그인 커밋을 체크아웃하지만 결과적인 working tree가 실제로 해당 커밋 해시와 일치하는지 확인하지 않습니다. Git이 commit 객체와 동일한 이름의 ref(branch)를 우선시하기 때문에, 플러그인 저장소 소유자는 pinned 40-hex 커밋 해시로 명명된 브랜치를 생성하고 악성 코드로 지정할 수 있습니다. 에이전트의 체크아웃이 악성 브랜치로 해석되면서도 여전히 설치된 것으로 예상되는 SHA를 보고합니다. background auto-update가 있는 에이전트(Claude Code/Codex 마켓플레이스의 기본값)에서는 사용자 상호작용이 필요 없습니다 — 악성 코드는 다음 업데이트 사이클에서 신뢰할 수 있는 플러그인을 무음으로 교체합니다.
영향받는 시스템
Claude Code (< 2.1.179), OpenAI Codex (< 0.146.0), GitHub Copilot (unpatched), Google Gemini CLI (will not be patched — deprecated)
완화 방안
Claude Code를 2.1.179+로, Codex를 0.146.0+로 즉시 업데이트하세요. GitHub Copilot용 수정 사항은 아직 없으며, Google은 Gemini CLI를 패치하지 않을 것입니다(Antigravity로 마이그레이션). GitHub 호스팅 마켓플레이스를 선호하세요(GitHub는 해시 모양의 브랜치 이름을 거부하여 클래식 변형을 완화합니다). Bitbucket/자체 호스팅 플러그인 소스는 피하세요. 여기서 bypass는 완전히 악용 가능합니다.