AI 코딩 어시스턴트인 Claude Code, Cursor, Grok Build는 개발자가 신뢰할 수 없는 저장소를 여는 즉시, 클릭이나 프롬프트 없이도 임의의 명령을 실행할 수 있습니다. 이 결함은 이러한 도구들이 프로젝트 파일을 스캔하기 위해 Git의 core.fsmonitor 기능을 호출하는 방식에서 발생합니다.
이 문제가 지금 중요한 이유
개발자들은 코드 제안, 함수 리팩토링, 심지어 전체 모듈 작성까지 AI 에이전트에 점점 더 의존하고 있습니다. 이러한 에이전트들은 작업 공간의 빠른 스냅샷이 필요하므로, 백그라운드에서 git status를 실행합니다. Git이 저장소의 .git/config 파일을 읽을 때, core.fsmonitor에 할당된 모든 값은 Git이 실행할 셸 명령으로 취급됩니다. 악의적인 공격자는 해당 설정 항목에 조작된 명령을 배치할 수 있으며, AI의 백그라운드 Git 호출은 사용자가 코드 한 줄을 입력하기도 전에 이를 트리거합니다.
이 코드는 개발자 자신의 권한으로 실행되므로, AI 에이전트가 통상적으로 작동하는 샌드박스를 우회합니다. 실제로, 침해된 저장소는 개발자가 어시스턴트가 단순히 제안을 제공하고 있다고 믿는 동안 악성 코드를 설치하거나, 자격 증명을 탈취하거나, 소스 파일을 변경할 수 있습니다.
공격이 전개되는 방식
- 준비 – 공격자는
.git/config에core.fsmonitor = /path/to/malicious/script와 같은 라인이 포함된 저장소를 생성합니다. - 전달 – 저장소는 zip 파일로 전달되거나, USB 스틱에서 복사되거나, 공유 드라이브를 통해 동기화되거나, 또는
.git폴더가 이미 포함된 상태로 피해자의 컴퓨터에 배치됩니다. - 트리거 – 개발자가 AI 기능이 탑재된 IDE에서 폴더를 엽니다. 어시스턴트는 컨텍스트를 수집하기 위해
git status를 실행합니다. Git은 로컬 설정을 읽고core.fsmonitor명령을 실행하며, 악성 스크립트가 즉시 실행됩니다.
단순한 git clone은 이 위험을 노출하지 않는데, 클론 과정에서 조작된 설정이 없는 새로운 .git 디렉터리가 생성되기 때문입니다. 이 공격은 공격자가 기존의 .git 폴더를 제공할 수 있을 때만 작동합니다.
위협 요소
- 개별 개발자는 자신도 모르게 컴퓨터가 침해되어 AI 에이전트가 접근할 수 있는 모든 데이터를 잃을 수 있습니다.
- 팀은 내부 드라이브나 계약업체의 zip 파일을 통해 코드를 공유할 때 여러 워크스테이션으로 페이로드를 확산시킬 수 있습니다.
- 도구 벤더는 사용자가 침해 원인을 근본적인 Git 상호작용이 아닌 AI 어시스턴트의 탓으로 돌릴 경우 평판 손상의 위험을 안게 됩니다.
악성 명령은 사용자의 권한을 상속받기 때문에 SSH 키, 빌드 스크립트 또는 배포 자격 증명을 포함하여 개발자가 수정할 수 있는 모든 파일을 수정할 수 있습니다.
개발자가 오늘 바로 취할 수 있는 완화 조치
로컬 Git 설정을 신뢰하지 마세요. AI 어시스턴트가 프로젝트를 쿼리할 때마다 저장소의 설정이 글로벌 값을 덮어씁니다.
어시스턴트와 함께 폴더를 열기 전에
core.fsmonitor항목을 검사하세요:git config --get core.fsmonitor어떤 값이 나타나면 의심스러운 것으로 간주하십시오.
다음 명령으로 항목을 제거하세요:
git config --local --unset core.fsmonitorGit이 실행할 수 있는 다른 위험한 키를 확인하세요:
hooksPath,sshCommand,pager,editor,filter. 동일한git config --get패턴을 사용하여 해당 항목들이 비어 있는지 확인하십시오.AI 도구에 입력하려는 모든 코드에 대해서는 클린 클론(clean clones)을 선호하세요. zip 파일이나 전송된 폴더를 사용해야 하는 경우,
.git디렉터리를 삭제하고 저장소를 다시 초기화하거나 위의 확인 절차를 먼저 수행하십시오.
책임의 소재
이 취약점은 Claude Code, Cursor 또는 Grok Build를 구동하는 언어 모델의 결함이 아니라, 해당 도구들이 파일 정보를 수집하는 방식에서 비롯된 결과입니다. 일부 벤더는 Git 호출을 더 엄격하게 샌드박스화하기 시작했지만, 기본 동작은 여전히 로컬 저장소 설정을 신뢰합니다. 업계에서 AI 에이전트가 작업 공간을 스캔할 때 잠재적으로 위험한 설정 항목을 제거하거나 무시하는 표준을 채택할 때까지, 개발자는 최후의 방어선으로 남아 있어야 합니다.
향후 주목해야 할 사항
git status를 호출하기 전에 Git 설정을 명시적으로 정화(sanitize)하는 도구 업데이트.- 권장되는 사전 점검(pre-flight checks)을 포함할 가능성이 높은 안전한 AI 지원 개발을 위한 커뮤니티 주도 가이드라인.
- 위에서 강조한 5가지 외에 코드 실행이 가능한 추가적인 Git 설정 키를 발견할 수 있는 보안 연구.
결론적으로, AI 어시스턴트는 편리한 페어 프로그래머가 될 수 있지만, 저장소의 Git 설정에 숨겨진 명령이라면 무엇이든 기꺼이 실행할 것입니다. 어시스턴트가 작업 공간에 접근하도록 허용하기 전에 반드시 확인하십시오.
