Claude Code · 2026년 8월 29일 ★★★★

클로드 코드 v2.1.251이 권한 검사를 통과한 뒤 심링크가 바뀌면 승인 범위 밖을 읽고 쓰던 구멍을 막았어요 — 정작 읽기 거부 규칙을 걸어 둔 파일도 심링크를 낀 경로면 Grep·Glob 에 그대로 읽히고 있었어요

어제 나온 v2.1.251은 고친 목록이 유난히 긴데, 그 가운데 권한 경계를 다시 조인 항목이 여럿이에요. Read·Write·Edit 가 권한 검사를 통과한 뒤 작업 디렉토리 안에서 심링크가 바뀌면 승인받은 자리 밖의 파일을 읽거나 쓸 수 있었고, Grep·Glob 은 심링크를 낀 검색 경로로 닿은 파일에는 Read(...) 거부 규칙을 아예 적용하지 않고 있었어요. 저장소에 딸려 오는 프로젝트 설정도 함께 좁혔는데, .claude/settings.json 이 자세한 베타 추적이나 API 본문 원문 기록을 켜거나 CLAUDE_CONFIG_DIR·TMPDIR 을 바꿀 수 있던 걸 막았고 자격 증명·라우팅 헤더를 넣는 ANTHROPIC_CUSTOM_HEADERS 는 승인을 받게 했어요. 정작 4월엔 심링크를 따라가 작업 공간 밖에 파일을 쓰는 문제에 High 등급 보안 권고가 붙었는데, 이번 권한 검사 쪽 건들은 8월 29일 현재 권고 없이 변경 목록 줄로만 나가 있어요.

용어 풀이
심링크
다른 파일이나 디렉토리를 가리키는 바로가기 파일. 경로를 따라가면 실제로는 다른 자리의 파일이 열린다
거부 규칙
설정 파일 permissions 의 deny 목록. 여기 적힌 경로는 승인을 묻지도 않고 아예 막힌다
CLAUDE_CONFIG_DIR
설정·로그인 정보·세션 기록·플러그인을 담는 디렉토리 위치를 정하는 환경변수
ANTHROPIC_CUSTOM_HEADERS
클로드 코드가 API 로 보내는 요청에 헤더를 덧붙이는 설정. Authorization·Host 처럼 요청이 어디로 어떤 자격으로 가는지를 바꾸는 값도 넣을 수 있다
운영자 인사이트

권한 allow/deny 는 최후 방어선이 아니라 한 겹일 뿐이라는 걸 이번 목록이 보여 줘요 — 에이전트에게 정말 안 보이길 바라는 파일은 거부 규칙에 맡기지 말고 작업 디렉토리 밖에 두고, 심링크가 흔한 작업 트리라면 v2.1.251 로 올려 두세요.

여러 관점으로 보기
  • 같은 버전이 함께 좁힌 프로젝트 설정 이제 프로젝트의 .claude/settings.json 은 env 로 CLAUDE_CONFIG_DIR·CLAUDE_CODE_TMPDIR·TMPDIR/TMP/TEMP 를 정할 수 없고, 셸이나 사용자·관리 설정으로 옮기라고 노트가 적어 뒀어요. 정작 공식 환경변수 문서의 '설정 파일에서' 절에는 어떤 파일이 누구에게 적용되는지만 표로 있을 뿐, 프로젝트 설정이 못 정하는 키 목록은 아직 없어요. Claude Code Docs
  • 4월엔 같은 심링크 경로가 High 등급 권고였어요 이 저장소에 올라온 보안 권고 10건 중에는 '심링크를 따라가 작업 공간 밖에 파일을 쓰는 샌드박스 탈출'이 High 등급으로 4월 20일에 있어요. 가장 최근 권고는 6월 25일 자라, 이번 v2.1.251 의 권한 검사 우회 건들은 8월 29일 현재 권고 없이 릴리스 노트 줄로만 남아 있어요. GitHub
  • 직전 v2.1.250 은 한 줄이 전부였어요 하루 앞선 v2.1.250(8월 28일 00:49)의 노트는 'Bug fixes and reliability improvements' 한 줄뿐이라 무엇이 바뀌었는지 알 수 없어요. v2.1.249 는 아예 건너뛰어 공개되지 않았고요. GitHub

원본 보기 (github-releases:claude-code)