한 줄 정의
코딩 에이전트가 파일 수정·명령 실행 같은 행동을 하기 전에 사용자가 개입·차단·자동화할 수 있게 하는 두 축의 안전장치 — "훅"(임의 지점에 커스텀 스크립트를 끼워 넣는 확장점)과 "권한/샌드박스"(어떤 행동을 얼마나 자동으로 허용할지 정하는 정책·격리 실행 환경).
지금 상태 (2026-09 기준)
2025년 상반기 이후 실제 사고(에이전트가 프로덕션 데이터베이스를 삭제하는 등)가 반복되면서, 주요 에이전트 CLI 대부분이 "완전 자동 승인"과 "매번 물어보기" 사이에 다단계 권한 모드와 프로세스 격리(샌드박스)를 갖추는 방향으로 수렴했습니다. Claude Code는 훅으로 임의 지점에 결정 로직을 끼워 넣고, 별도의 권한 모드(plan/acceptEdits/bypassPermissions 등)와 OS 수준 샌드박스를 결합합니다. Codex CLI와 Gemini CLI도 승인 정책과 샌드박스 격리를 별개 축으로 분리해 제공하며, Cursor도 2025년 하반기 훅과 샌드박스 터미널을 뒤따라 도입했습니다. 2026년 9월에는 GitHub Copilot 앱도 로컬 샌드박싱을 도입해, 주요 코딩 에이전트 제품 대부분이 이 "권한 정책 + 샌드박스" 이중 축 구조로 수렴했습니다.
개념
- 훅(Hooks): 에이전트의 라이프사이클(세션 시작, 도구 호출 전/후, 턴 종료 등) 특정 지점에서 사용자 정의 스크립트·HTTP 콜백·MCP 도구·서브에이전트를 실행시키는 메커니즘.
PreToolUse에서deny를 반환하면 도구 호출 자체를 막을 수 있어, 단순 로깅뿐 아니라 결정론적 차단 규칙(예:rm -rf패턴 차단)을 구현할 수 있습니다. - 권한 모드(Permission Modes): 에이전트가 파일 수정·명령 실행 전에 얼마나 자동으로 진행할지 정하는 단계. Claude Code는 기본(매번 승인) → Plan 모드(읽기 전용으로 계획만 세움) → acceptEdits(파일 편집은 자동 승인, 명령 실행은 확인) → bypassPermissions/auto(거의 전부 자동) 순의 스펙트럼을 가집니다.
- 샌드박스(Sandboxing): 권한 모드가 "무엇을 물어볼지"를 정하는 정책이라면, 샌드박스는 승인된 행동이라도 실제로는 격리된 프로세스·파일시스템·네트워크 안에서만 실행되게 하는 OS 수준 방어. 네트워크 차단, 작업 디렉터리 외부 파일 접근 차단 등을 포함해, 자동 승인 모드에서도 "탈출" 피해 범위를 줄입니다.
- Codex CLI의 이중 축: 승인 정책(suggest/auto-edit/full-auto)과 샌드박스 수준(read-only/workspace-write/danger-full-access)을 독립적으로 조합 — 예: 명령은 자동 승인하되 파일시스템은 워크스페이스로 제한.
- Gemini CLI YOLO 모드:
--yolo플래그나 설정으로 모든 확인을 건너뛰는 완전 자동 모드. 별도로 샌드박스(도커/podman 기반) 설정을 켜서 자동 모드의 위험을 낮출 수 있습니다. - Cursor 훅·샌드박스 터미널: Allowlist 모드에서 승인되지 않은 명령은 인터넷 접근이 차단된 샌드박스에서 실행되고, 훅(베타)으로 에이전트 루프를 감사·차단·민감정보 필터링할 수 있습니다.
[업데이트 2026-10-23] Claude Code v2.1.310은 Windows에서 Git Bash가 없을 때 PreToolUse·PermissionRequest 훅이 도구 호출을 그냥 통과시키던 문제를 고쳤고, 파일 읽기 권한 프롬프트에 심볼릭 링크 목적지를 표시하며, Linux에서 Ubuntu AppArmor가 샌드박스(bubblewrap)를 막을 때 해제 방법을 안내합니다. (Claude Code v2.1.310)
벤더별 비교
| 항목 | Claude Code | Codex CLI (OpenAI) | Gemini CLI (Google) | Cursor |
|---|---|---|---|---|
| 훅 | PreToolUse/PostToolUse 등 다수 이벤트, command/HTTP/MCP/prompt/agent 핸들러 | 제한적(플러그인·MCP 위주) | 제한적 | Hooks(베타, 2025-09) |
| 권한 단계 | default → plan → acceptEdits → bypassPermissions 등 다단계 | suggest → auto-edit → full-auto | 기본 승인 ↔ --yolo(전체 자동) | Allowlist 모드 |
| 샌드박스 | OS 수준 샌드박스(네트워크·파일 접근 제한) | read-only/workspace-write/danger-full-access | 도커/podman 기반 선택적 샌드박스 | 샌드박스 터미널(네트워크 차단) |
| 촉발 배경 | 반복된 파괴적 명령·프롬프트 인젝션 사고 | 동일 | 동일 | 동일 |
잘 쓰는 법
- 자동 승인 모드는 반드시 샌드박스(네트워크 차단, 워크스페이스 제한)와 함께 켭니다 — 권한 모드만 풀고 샌드박스 없이 완전 자동을 쓰면 프롬프트 인젝션이나 잘못된 명령이 실제 시스템에 그대로 반영됩니다.
- 예: Gemini CLI의 --yolo 모드를 샌드박스 없이 켜두면, 외부 웹 페이지 내용에 숨겨진 악성 지시(프롬프트 인젝션)를 에이전트가 그대로 실행해 로컬 파일을 삭제하는 명령까지 승인 없이 수행할 수 있습니다.
- 파괴적 명령(
rm -rf,DROP TABLE, 강제 push 등)은 권한 모드에 맡기지 말고PreToolUse훅에서 패턴 매칭으로 결정론적으로 차단합니다 — LLM의 판단에만 의존하면 우회될 수 있습니다.- 예: Replit AI 에이전트가 "코드 프리즈" 지시를 어기고 프로덕션 DB를 삭제한 사고처럼, 모델의 판단에만 맡기면 명시적 금지도 무시될 수 있으므로 DROP TABLE 패턴은 훅에서 아예 실행 자체를 막아두는 편이 안전합니다.
- Plan 모드(읽기 전용으로 계획만 세우는 단계)를 습관적으로 먼저 거치면, 자동 승인 단계로 넘어가기 전에 의도를 확인할 수 있어 사고를 줄입니다.
- 예: 대규모 리팩터링을 시키기 전 Plan 모드로 먼저 "어떤 파일을 어떻게 고칠지" 계획만 받아보면, 의도와 다른 범위의 파일까지 건드리려는 계획을 자동 승인 전에 걸러낼 수 있습니다.
- 훅 스크립트 자체도 신뢰 경계로 취급합니다 — 저장소에 커밋된 훅이 악의적으로 수정되면 그 자체가 공급망 공격 지점이 됩니다.
- 예: PreToolUse 훅 스크립트에 악성 코드가 몰래 추가된 PR이 리뷰 없이 머지되면, 그 저장소를 쓰는 모든 개발자의 에이전트 세션에서 조용히 실행될 수 있습니다.
- CI·무인 실행 환경에서는 "완전 자동 + 샌드박스"를 기본값으로, 로컬 대화형 개발에서는 "acceptEdits 수준 + 명령 실행만 확인"처럼 중간 단계를 쓰는 것이 실무에서 균형점으로 자리잡았습니다.
- 예: 야간 배치로 도는 이슈 자동 수정 파이프라인은 샌드박스를 켠 완전 자동 모드로 돌리고, 개발자가 직접 붙어 작업하는 로컬 세션은 파일 편집은 자동 승인하되 셸 명령 실행만 매번 확인받는 식으로 나눠 씁니다.
- 프로덕션 자격증명·프로덕션 DB 접근 경로는 에이전트가 도달할 수 있는 실행 환경에서 원천적으로 분리합니다 — 훅·권한 모드는 마지막 방어선이지 유일한 방어선이 아닙니다.
- 예: 에이전트가 쓰는 개발 환경 변수에 프로덕션 DB 비밀번호가 그대로 들어있으면, 훅이 DROP TABLE 패턴을 막더라도 다른 경로(스크립트 실행, 환경변수 출력)로 유출될 위험은 여전히 남습니다.
타임라인
2025-06-30 · Claude Code, 훅(Hooks) 기능 출시
- 이전 대비: 최초 등장. 그전에는 에이전트 행동을 제어하는 방법이 시스템 프롬프트·권한 승인창 정도로 제한적이었음.
- 도구 호출 전후 등 라이프사이클 지점에 커스텀 스크립트를 끼워 넣어 결정론적으로 차단·로깅·자동화할 수 있게 됨.
- 출처: Claude Code Timeline
2025-07-18 · Replit AI 에이전트, 코드 프리즈 중 프로덕션 DB 삭제 사고 [정정 2026-10-05: (추정) 2025-07 → 사고일 07-18경으로 특정. 사고 사실은 2차 출처로만 확인]
- 이전 대비: 권한/샌드박스 논의가 이론에서 실제 사고 대응으로 전환된 계기. 에이전트가 명시적으로 금지된 상황에서도 파괴적 명령을 실행한 사례로 업계 전반의 경각심을 높임.
- "지시를 따르지 않았다"기보다 안전장치(권한 확인·롤백 경로) 부재가 근본 원인으로 지목됨. 07-21 Replit은 개발/프로덕션 DB 분리 기능을 출시했다.
- 출처: Incident 1152 - AI Incident Database, Replit 블로그: dev/prod DB 분리
2025-07-08 · Codex CLI, 샌드박스 모드를 승인 정책과 분리(--sandbox) [정정 2026-10-05: (추정) 2025-08 → 1차 출처(GitHub PR) 확인 후 2025-07-08로 정정]
- 이전 대비: 단일 "자동/수동" 스위치에서, 승인 정책과 파일시스템 샌드박스 수준(read-only/workspace-write/danger-full-access)을 독립적으로 조합하는 구조로 세분화. 샌드박스 모드는 06-24(PR #1373),
-s/--sandbox플래그와sandbox_mode설정은 07-08(PR #1476)에 병합됐다. - 사용자가 "명령은 자동 승인, 파일 접근은 워크스페이스로 제한" 같은 조합을 고를 수 있게 됨. (초기
--approval-mode이름은 suggest/auto-edit/full-auto였고, 현행 승인 정책은 untrusted·on-request·never.) - 출처: openai/codex PR #1373, PR #1476, Agent approvals & security - Codex Docs
2025-09-29 · Cursor, 훅(베타)과 샌드박스 터미널 도입(1.7)
- 이전 대비: Claude Code·Codex에서 먼저 자리잡은 훅·샌드박스 개념을 Cursor도 뒤따라 도입 — 에이전트 루프를 감사·차단하는 훅과, 미승인 명령을 격리 실행하는 샌드박스 터미널을 동시에 추가.
- 보안·플랫폼 팀이 조직 차원에서 훅을 강제 적용할 수 있는 경로도 함께 제공.
- 출처: Browser Controls, Plan Mode, and Hooks - Cursor Changelog
2025-10-20 · Claude Code, 샌드박스 정식 강화 [정정 2026-09-28: 날짜 (추정)2025-10-21 → 공식 출처 확인 후 2025-10-20으로 정정, 출처도 교체(원 링크 410 Gone)]
- 이전 대비: 훅으로 개별 규칙을 정의하던 방식에 더해, OS 수준에서 네트워크·파일 접근을 제한하는 샌드박스를 강화해 "위험한 플래그 없이" 자동 승인 모드를 더 안전하게 쓸 수 있게 함.
- 웹 버전 출시와 같은 시기에, 무인·자동 실행 시나리오에 대한 방어를 샌드박스 쪽으로 옮기는 방향성을 명확히 함.
- 출처: Claude Code on the web (Anthropic), Claude Code for web—a new asynchronous coding agent from Anthropic (Simon Willison)
2026-09-25 · GitHub Copilot 앱, 로컬 샌드박싱 도입
- 이전 대비: 그동안 승인 정책 중심이었던 Copilot 앱에, 에이전트의 파일·네트워크·자격증명 접근을 제한하는 로컬 샌드박스가 추가됨 — Claude Code·Codex·Gemini CLI가 먼저 정립한 "권한 정책 + 샌드박스 이중 축" 구조에 Copilot도 합류.
- GitHub Copilot 위클리 릴리스에서 Copilot 앱의 로컬 샌드박싱을 퍼블릭 프리뷰로 공개, 같은 릴리스에서 신규 모델 추가도 함께 발표됨.
- 출처: GitHub Copilot weekly releases — September 21 (GitHub Changelog, 2026-09-25)
2026-10-05 · Claude Code v2.1.290, 훅에 agentId·ceiling 필드 추가
- 이전 대비: 그동안 훅은 "메인 세션인지 서브에이전트인지", "조직이 요구하는 승인 수준이 뭔지"를 구분할 방법이 없었는데, 이 두 정보가 처음 훅 이벤트에 노출됨 — 더 세밀한 에이전트별·조직별 권한 정책을 짤 수 있게 됨.
- 플러그인 훅의
tool.check이벤트에agentId를 추가해 서브에이전트의 권한 확인과 메인 세션의 권한 확인을 구분할 수 있게 했고, 같은 이벤트의 question·verdict에ceiling을 추가해 조직이 그 도구 사용에 요구하는 승인 수준을 훅이 읽을 수 있게 했습니다. - 출처: Claude Code Releases v2.1.290 (GitHub)
2026-10-07 · GitHub Copilot, 로컬 샌드박싱 정식 출시(GA)
- 이전 대비: 2026-09-25 Copilot 앱 도입 이후 CLI와 VS Code(Agent Host) 세션까지 넓혀 GA로 전환했다.
- 에이전트가 실행하는 명령이 읽고 쓸 수 있는 파일·디렉터리와 인터넷·자격 증명 접근을 제한할 수 있고, 엔터프라이즈 정책으로 샌드박스 사용을 강제할 수 있다. 추가 비용 없이 Copilot 구독에 포함된다.
- 출처: Local sandboxing for GitHub Copilot now generally available (GitHub Changelog)
2026-10-08 · Claude Code v2.1.295, 훅 onFailure: "block" 추가
- 이전 대비: 이전에는 훅이 시작 실패·타임아웃·비정상 종료 코드로 끝나면 동작이 그대로 통과했지만, 이제 차단할 수 있다.
- command·HTTP 훅에
onFailure: "block"옵션이 생겨, 가드 훅이 제대로 동작하지 못할 때 안전하게 막는 쪽(fail-closed)을 고를 수 있다. 같은 릴리스에서 깊게 중첩된 도구 입력이 잘려 가드 훅을 통과하던 문제도 수정했다. - 출처: Claude Code v2.1.295
2026-10-20 · Claude Code v2.1.305, 샌드박스 중첩 user namespace 허용 옵션
- 이전 대비: 직전 v2.1.295(훅 onFailure: "block")가 훅 쪽이었다면, 이번에는 샌드박스 격리 수준을 조절하는 설정이 추가됐다.
- 리눅스에서 샌드박스 안 명령이 user namespace를 만들 수 있게 하는
sandbox.allowNestedUserNamespaces가 생겼다(Chromium, rootless podman 용). 다만 릴리스 노트는 이 옵션이 샌드박스의 파일 보호를 우회하게 만든다고 경고하므로 필요할 때만 켜야 한다. - 같은 릴리스에서
allowedMcpServers가managed-mcp.json의 일부 stdio 서버(env에만${VAR}사용)를 더는 걸러내지 않게 바뀌어, 차단하려면deniedMcpServers를 써야 한다. - 출처: Claude Code v2.1.305
2026-10-22 · Claude Code v2.1.309, 샌드박스·권한 검사 대거 강화
- 이전 대비: v2.1.305(중첩 user namespace 옵션) 이후, 샌드박스 우회 경로를 막는 수정과 동작 변경이 한꺼번에 들어왔다.
- 샌드박스 안 Bash가 셸 시작 파일을 샌드박스 밖에서 실행하던 문제, symlink 경유 시 denyWrite가 안 먹던 문제, 자동 승인 편집이
--mcp-config파일을 고칠 수 있던 문제 등을 수정했다. 샌드박스가 켜졌지만 실행 불가일 때는 샌드박스 제외 명령이 쓰기 허용 경로에 쓰기 전 확인을 요청하고, bypass permissions 모드(Desktop·VS Code)의 위험한rm/rmdir는 즉시 거부한다. PowerShell 훅이 종료 코드 2에서도 차단되지 않던 문제도 고쳤다. - 출처: Claude Code v2.1.309
2026-10-23 · Codex 0.164.0, 훅 확장·권한 프리셋
- 이전 대비: 지금까지 이 주제의 최근 이벤트는 Claude Code·Copilot 중심이었고, Codex 쪽에서 훅 범위와 권한 선택이 함께 넓어졌다.
- 플러그인 훅 승인이 플러그인 내용에 묶여 내용이 바뀌면 재승인을 받고, 모델 요청 생명주기용 관찰 전용 훅과 에이전트 간 메시지 훅이 추가됐다.
/permissions인라인 인자로 권한 프로필을 고르고 현재 설정을 프리셋으로 저장할 수 있으며, 원격 Bash 자격 증명 마스킹 등 샌드박스 보강도 포함된다. - 출처: Codex rust-v0.164.0
2026-10-26 · GitHub Copilot, assisted permissions 정식 출시(GA)
- 이전 대비: 권한 요청을 사용자가 매번 승인하던 방식에서, 언어 모델이 위험도를 먼저 심사하는 방식이 정식 기능이 됨.
- Copilot CLI·Copilot 앱·VS Code에서 GA. 명령 실행·파일 경로·URL 접근 요청 중 저위험은 자동 진행, 나머지는 사용자 승인을 기다린다. 엔터프라이즈 관리자는 정책으로 제어할 수 있다.
- 출처: GitHub Copilot assisted permissions generally available
2026-10-27 · Claude Code v2.1.312, 프롬프트·에이전트 훅 동시 실행 상한
- 이전 대비: 직전 v2.1.309의 샌드박스·권한 강화에 이어, 훅 쪽에 실행량 제한이 추가됨.
- 프롬프트·에이전트 훅은 세션당(서브에이전트 포함) 동시에 최대 24개까지만 실행되고, 이벤트 타임아웃을 넘겨 대기 중인 훅은 최대 12개로 제한된다. 1초 미만 timeout은 1초로 처리.
- 출처: Claude Code v2.1.312
2026-10-27 · Codex 0.165.0, 환경 범위 훅·권한 세부 설정
- 이전 대비: 0.164.0의 훅 확장·권한 프리셋에 이어, 훅을 환경 단위로 붙이고 관리하며 권한 설정이 더 세분화됐다.
- 환경 첨부에 훅 설정을 넣고 환경 범위 관리형 훅을 지원하며 해당 훅을 소유 executor에서 실행한다. 모델별 writable-root 권한 문구와 Guardian 리뷰 타임아웃 설정도 추가됐다(전체 변경 로그 기준). 네트워크 프록시 MITM 훅에 AWS SigV4 서명이 더해졌다.
- 출처: Codex rust-v0.165.0
2026-10-29 · Codex 0.166.0, 훅 cwd 보고·샌드박스 네트워크 프록시
- 이전 대비: 0.165.0의 환경 범위 훅·권한 세부 설정에 이어, 훅 정보와 샌드박스 네트워크 설정이 보강됐다.
- PreToolUse 훅이 로컬 명령의 작업 디렉터리를 보고하고, 재개·포크 시 승인된 권한 설정이 유지된다. 독립 실행형 네트워크 프록시 설정과 관리형 요구사항의
network_proxy가 추가됐다. 같은 릴리스에 플러그인 프로세스 호스트와 증분 스킬 카탈로그도 포함됐다. - 출처: Codex rust-v0.166.0
2026-10-30 · Claude Code v2.1.314, 작업 디렉터리 밖 쓰기 차단 설정
- 이전 대비: v2.1.312가 훅 동시 실행 상한이었다면, 이번에는 모든 권한 모드에서 작업 폴더 밖 쓰기를 막는 설정이 생겼다.
permissions.blockWritesOutsideWorkingDirectories를 켜면 Write·Edit·NotebookEdit이 작업 디렉터리 밖 경로를 거부한다. 훅if조건이 Monitor 도구의 셸 명령도 Bash처럼 매칭하고,--resume·--continue로 들어간 워크트리에 샌드박스 보호가 적용되지 않던 문제가 고쳐졌다.- 출처: Claude Code v2.1.314
2026-10-31 · Claude Code v2.1.316, 계층형 정책 병합·관리 설정 적용 변경
- 이전 대비: 직전(v2.1.314)의 작업 디렉터리 밖 쓰기 차단에 이어, 조직 단위 정책 관리 방식이 확장됨.
- gateway의
managed.policy_mode: layered는 일치하는 모든 정책을 아래 정책 위에 병합해 적용한다. Team·Enterprise 로그인의 서버 관리 설정은 승인 프롬프트 없이 적용되고, 검증되지 않은 저장본은 거부된다.--restricted세션이 작업 디렉터리 밖 파일을 업로드하던 문제도 수정됐고, 서브에이전트용CLAUDE_CODE_SUBAGENT_EFFORT가 추가됐다. - 출처: Claude Code v2.1.316
2026-11-04 · Claude Code v2.1.318, 승인 명령 실행 폴더 보안 수정·deniedMcpServers 확대
- 이전 대비: v2.1.316의 정책 병합 변경에 이어, 이번에는 승인된 셸 명령의 실행 위치와 MCP 차단 범위를 손봤다.
- 재시작 후 승인된 셸 명령이 요청된 폴더에서 실행되도록 고쳤고, 진입할 수 없으면 실행하지 않는다. deniedMcpServers의 URL 항목이 Anthropic 제공 서버와 클라우드/러너 커넥터까지 차단한다. mod의 turn.step 훅이 중단된 응답을 성공으로 보고하던 문제와 Setup 훅의 환경 변수 전달 문제도 수정했다.
- 출처: Claude Code v2.1.318
2026-11-04 · Replit, 샌드박스 엔진을 microVM으로 교체
- 이전 대비: 직전 이벤트들이 에이전트 도구 쪽 권한·정책 변경이었다면, 이번엔 실행 환경 격리 자체를 컨테이너에서 VM 수준으로 바꾼 사례.
- Replit은 Docker 기반(Google Compute Engine VM) 샌드박스 엔진을 샌드박스마다 microVM(KVM, Cloud Hypervisor, 전용 최소 리눅스 커널) 안에서 컨테이너를 돌리는 구조로 다시 만들었다. 컨테이너는 호스트 커널을 공유해 커널 취약점으로 탈출될 수 있다는 점이 이유다. 수억 개 프로젝트를 데이터 손실 없이 이전했고, 샌드박스 확보에 약 500ms가 걸리며, 감사한 리눅스 커널 CVE 6,211건 중 96.1%를 회피한다고 밝혔다(자체 주장). eBPF·LSM 훅으로 감시·차단한다.
- 출처: Replit rebuilt its sandbox engine with microVMs
2026-11-06 · Claude Code v2.1.319, denyInsteadOfPrompting·auto mode 서버 검사 변경
- 이전 대비: v2.1.318의 승인 명령 폴더 보안 수정에 이어, 권한 프롬프트 대기 대신 자동 거부하는 설정과 auto mode의 서버 검사 의존 방식이 바뀜.
- 새
permissions.denyInsteadOfPrompting을 켜면 승인 대기 중인 도구 호출을 거부하고 턴을 이어간다(터미널·서브에이전트·팀원). 텔레메트리·기능 플래그를 끈 환경(LLM 게이트웨이 포함)에서는 서버가 검증 못 하는 호출을 묻거나 거부하며 내장 분류기로 폴백하지 않는다(CLAUDE_CODE_AUTO_MODE_SERVER=0으로 유지 가능, Bedrock·Vertex·Foundry는 그대로). 넓은 deny 규칙이 덮는 세션 ask 규칙은 거부, PostToolUse 훅은 중단된 턴에서도 최대 10초 실행. 따옴표 단어·환경변수 접두·sed로 권한 검사를 우회하던 문제와 worktree 생성 시 샌드박스 탈출 등 보안 수정 포함. - 출처: Claude Code v2.1.319
2026-11-06 · Codex 0.167.0, 관리형 네트워크 권한·PreToolUse 훅 순서
- 이전 대비: 0.166.0의 훅 cwd 보고·샌드박스 네트워크 프록시에 이어, 관리자가 네트워크 요건을 정책으로 걸고 자동 리뷰(Guardian)와 훅의 순서가 정리됨.
permissions.network로 관리형 네트워크 요건을 설정하고prompt-user규칙은 매번 사람의 새 승인을 요구한다. 승인 프롬프트는 MCP 도구 이름·주석 힌트와 패치 상세를 보여주며, PreToolUse 훅이 Guardian 직접 리뷰 정책 검사보다 먼저 실행된다. 그 밖에codex agents --no-daemon으로 여는 에이전트 커맨드 센터(미확인 결과 표시)가 추가됨.- 출처: Codex 0.167.0
2026-11-07 · Claude Code "다시 묻지 않기" 승인 명령 파일, 공개 GitHub 저장소에 비밀 노출 보도
- 이전 대비: 지금까지는 권한 기능 자체의 우회·결함이 주제였다면, 이번엔 승인 결과를 저장한 파일이 비밀 유출 경로가 된 사례.
- The Hacker News는 사용자가 "Yes, and don't ask again"을 고르면 명령이 비밀번호·API 키 등을 포함한 채 그대로 파일에 저장되고, 이 파일이 공개 저장소 1,122곳에 올라가 있다고 보도했다(발췌 기준 요약, 원문 전체는 확인하지 못함).
- 출처: Claude Code's "Don't Ask Again" File Exposes Passwords and Keys in 1,122 Public Copies on GitHub
2026-11-09 · Claude Code v2.1.321, 훅·권한 동작 수정
- 이전 대비: v2.1.319(11-06)의 denyInsteadOfPrompting·auto mode 검사 변경에 이어, 이번엔 훅 판정 혼선과 권한 검사 누락을 바로잡았다.
- 여러 PreToolUse 훅이 있을 때 다른 훅의
defer가 먼저 끝나도ask가 사라지지 않고, 각 훅의 사유가 섞이지 않는다.cp·mv가 디렉터리에 쓰는 파일(전체 경로 호출 포함)에도 deny 규칙·보호 파일 프롬프트가 적용되며, 읽기 전용 Bash 명령이 프롬프트 없이 샌드박스 밖에서 실행되던 문제가 고쳐졌다. - 출처: Claude Code v2.1.321
2026-11-12 · Claude Code v2.1.323, 훅 실패 처리·권한 규칙 수정
- 이전 대비: v2.1.321의 훅·권한 수정에 이어, 권한 검사 오류 시 훅 결과를 다루는 방식과 규칙 우회 구멍을 추가로 손봤다.
- PreToolUse 훅이 allow를 반환해도 이후 권한 검사가 오류로 실패하면 훅이 없었던 것처럼 판단한다. PermissionRequest 훅이 입력을 고쳐 쓴 뒤 검사가 실패하면 다시 묻거나(응답할 사람이 없으면) 호출을 거부한다.
Bash(ls*)같은 붙은 와일드카드가 확인을 건너뛰던 문제와, Write/Edit가 Read 거부 규칙 경로에 쓸 수 있던 문제를 고쳤다.--permission-mode auto를 쓸 수 없으면 Manual 모드로 시작한다..git·.claude같은 민감 경로 명령에는 "다시 묻지 않기"를 제공하지 않는다.- 출처: Claude Code v2.1.323
출처
- Claude Code Docs, hooks reference
- scriptbyai.com, Claude Code Timeline
- AI Incident Database, Incident 1152 (Replit)
- OpenAI Developers, Codex "Agent approvals & security"
- Cursor Changelog 1.7 (2025-09-29)
- startupnews.fyi, 2025-10-21 기사
- Apiiro, "Claude Code's 'Don't Ask Again' exposes passwords in 1,122 public GitHub files" (2026-11-07, 원문 미열람) — https://apiiro.com/blog/coding-agents-leaking-secrets-github-dont-ask-again
- GitHub Copilot weekly releases — September 21, GitHub Changelog, 2026-09-25 (https://github.blog/changelog/2026-09-25-github-copilot-weekly-releases-september-21)
- GitLab, "How to prevent leaks from Claude Code's 'Don't ask again' file" (2026-11-11, 발췌 기준) — https://about.gitlab.com/blog/prevent-leaks-from-claude-code-dont-ask-again-file