Claude Code · 2026년 9월 17일 ★★★★★

클로드 코드 샌드박스를 켜도 하네스가 직접 돌리는 git 은 밖에서 돌아서, 저장소가 만든 하위 .git 설정 하나로 맥에서 명령이 실행됐고 2.1.247 에서 막혔어요

보안 연구 조직 어컴플리시(Accomplish AI)의 오렌 욤토브가 9월 11일 공개한 벨트다운(Beltdown)은, macOS 에서 샌드박스를 켜고 물어보지 않는 권한 모드로 둔 클로드 코드에 낯선 저장소를 열고 메시지 하나를 보내면 권한 확인 없이 사용자 권한으로 명령이 실행되는 경로예요. 에이전트의 셸은 시트벨트(Seatbelt) 안에 갇혀 있었지만, 저장소 설치 스크립트가 샌드박스 안에서 하위 폴더에 .git 을 만드는 것은 허용됐고(쓰기 차단은 루트 .git 에만 걸려 있었어요), 스킬이 자동으로 읽히며 파일 색인이 갱신될 때 하네스가 샌드박스 밖에서 돌리는 git ls-files 만 core.fsmonitor 를 비우지 않아 그 설정에 적힌 명령이 맥에서 실행됐어요. 7월 13일 신고 뒤 8월 6일 2.1.223 이 일부만 막았고 8월 26일 2.1.247 부터 하네스가 돌리는 모든 git 명령이 core.fsmonitor 를 비운다고 연구진은 적었는데, 두 버전의 릴리스 노트 어디에도 이 수정은 적혀 있지 않고 별도 보안 권고(GHSA)나 CVE 도 없어요.

용어 풀이
core.fsmonitor
git 이 파일 변경을 빨리 알아채려고 대신 실행하는 외부 프로그램을 지정하는 설정 항목
git ls-files
저장소가 추적하는 파일 목록을 출력하는 git 명령
Seatbelt
macOS 에 내장된 프로세스 격리 기능. 클로드 코드 샌드박스가 맥에서 쓰는 바탕
GHSA
깃허브가 발행하는 보안 권고 식별 번호
CVE
공개된 보안 취약점에 붙이는 국제 공통 식별 번호
운영자 인사이트

샌드박스가 가두는 것은 모델이 부르는 Bash 뿐이고, 클로드 코드가 색인이나 상태 표시용으로 스스로 돌리는 git 은 그 밖에서 사용자 권한으로 돌아요. 8월 26일 2.1.247 미만이면 지금 올리고, 낯선 저장소는 샌드박스를 믿고 물어보지 않는 모드로 열지 마세요. 매니폴드 시큐리티가 9월 1일 공개한 GitSpawn 은 .git 폴더째 건네받아야 발동한다고 했지만, 이 경로는 git clone 으로 받은 저장소의 설치 스크립트가 하위 .git 을 만들어 내는 방식이라 그 전제도 깨져요.

여러 관점으로 보기
  • 같은 결함이 커서 CLI 에도 같은 연구 조직이 이튿날 9월 12일 낸 후속 글은 커서 CLI 가 하네스 git 을 아예 강화하지 않아 .git/config 의 core.fsmonitor 만으로 샌드박스 밖에서 실행됐고, 2026.08.04 빌드에서 환경변수로 git 을 일괄 강화해 막았다고 적었어요. Accomplish AI
  • 이전에 공식 권고가 난 같은 계열 결함 앤트로픽이 6월 25일 공개한 CVE-2026-55607(CVSS 7.7)은 .git 이라는 이름의 워크트리와 심링크로 fsmonitor 를 실행시켜 시트벨트 밖에서 코드를 돌리는 다른 체인이었고 2.1.163 에서 막혔는데, 벨트다운 체인은 그 뒤에도 남아 있다가 2.1.247 에서 막혔어요. GitHub Security Advisories
  • 제3자 해석: 지연 실행 패턴 샌드박스 도구 safeyolo 관리자는 9월 16일 이슈에서 이 사례를 '샌드박스에 싸인 에이전트 셸은 갇혀 있었지만 하네스가 자기 git 을 밖에서 돌리며 공격자 설정을 따랐다'고 정리하고, 샌드박스 밖 소비자가 읽는 파일과 설정을 전부 다시 점검하라고 적었어요. GitHub
  • 릴리스 노트에는 없어요 8월 26일 v2.1.247 릴리스 노트 33개 항목에는 샌드박스 정리 단계가 settings.json 심링크를 지우던 문제 같은 것은 있어도 core.fsmonitor 나 git 설정을 걸러 낸다는 줄은 없어요. GitHub

원본 보기 (hn:claude-code)