
Claude Code v2.1.162: 권한 제어 버그 수정 및 agents 대폭 개선 정리
요약
Claude Code v2.1.162 업데이트를 통해 보안 권한 제어 버그와 에이전트 관련 결함이 대폭 수정되었습니다. 특히 WebFetch의 도메인 규칙 적용 방식이 개선되었으며, Windows 환경에서의 경로 인식 및 보안 유출 문제를 해결했습니다.
핵심 포인트
- WebFetch 권한 규칙이 사전 승인 도메인보다 우선 적용됨
- Windows 환경의 경로 대조 및 대소문자 인식 오류 수정
- claude agents 명령의 대규모 결함 및 MCP 타임아웃 오류 해결
- Glob/Grep 검색 시 deny 설정된 파일이 노출되던 보안 문제 수정
Claude Code v2.1.162가 출시되었습니다. 이 버전은 보안 및 권한 제어(Permission Control)와 관련된 중요한 버그 수정을 여러 개 포함하고 있습니다. 특히 WebFetch의 권한 규칙 적용 누락이나 Windows 환경에서의 경로 대조 오류는 액세스 제어 설계에 영향을 미치는 문제이므로, 해당 환경을 사용하는 개발자는 확인이 필요합니다.
또한 claude agents 명령에 관한 대규모 결함 수정과 MCP 타임아웃(timeout) 설정 오작동 수정, 실행 표시의 UX 개선 등도 포함되어 있습니다.
📌 영향을 받는 사람
- Claude Code의
claude agents로 멀티 에이전트(multi-agent) 개발을 하고 있는 사람 - WebFetch에 명시적인 deny/allow 규칙을 설정하고 있는 사람
- Windows 환경에서 Claude Code를 사용하고 있는 사람
- MCP 서버의
timeout을 1000ms 미만으로 설정했던 사람
| 중요도 | 변경 사항 | 조치 필요 여부 |
|---|---|---|
| 🔴 High | WebFetch 권한 규칙이 사전 승인 도메인에 미적용 | 확인 필요 |
| ... | claude agents 연결·입력·백그라운드 등 여러 결함 | 불필요 (자동 수정) |
| 🟡 Medium | 이모지를 포함한 문자열에서 API 400 에러 발생 (MCP) | 불필요 (자동 수정) |
| 🟡 Medium | SDK/stream-json에서 턴(turn) 시작 직후의 Esc 키가 무시됨 | 불필요 (자동 수정) |
| 🟢 Low | claude agents --json에 waitingFor 필드 추가 | 불필요 |
| 🟢 Low | 실행 표시 간소화 및 경고 메시지 개선 | 불필요 |
| 🟢 Low | Windsurf → Devin Desktop 리브랜딩 대응 | 불필요 |
⚠️ Breaking Change (버그 수정으로 인한 동작 변화)
내장된 사전 승인 도메인에 대한 WebFetch에 대해, 지금까지 명시적인 deny / ask / allow 규칙이 무시되었습니다. v2.1.162 이후부터는 명시적인 규칙이 우선됩니다.
수정 전 동작:
- 내장된 사전 승인 도메인(예:
github.com등)은 자동으로 허용 WebFetch(domain:github.com)에deny를 설정해도 무시됨
수정 후 동작:
- 명시적인
deny/ask/allow규칙이 사전 승인 도메인보다 우선됨 - 보안 정책을 엄격하게 적용하고 싶은 경우 올바르게 동작
대응이 필요한 케이스:
- 사전 승인 도메인에 대한 액세스를
deny하고 싶은 경우 (지금까지는 작동하지 않았으나, v2.1.162부터 작동함) - 반대로 "의도치 않게
deny를 설정했던" 경우에는 허용되지 않으므로 설정을 재검토할 것
⚠️ Windows 사용자는 특히 주의
Windows 환경에서는 다음 두 가지 문제가 동시에 수정되었습니다:
-
백슬래시(/) 및 대소문자 차이로 인해 권한 규칙이 일치하지 않는 문제
~\projects\나\\server\share형식의 경로가 규칙에 매치되지 않음- 대소문자 차이(
C:\Usersvsc:\users)로 인해 매치되지 않음
-
Read의 deny 규칙이 Glob/Grep 검색 결과에서 파일을 숨기지 않는 문제
deny설정한 파일이라도 Glob/Grep 결과에 나타남- 기밀 파일의 경로를
deny하더라도 검색 결과에 유출되었을 가능성 있음
Windows 사용자를 위한 확인 사항:
- 권한 규칙에
~\나\\server\형식의 경로를 사용하고 있는 경우, 지금까지 제대로 작동하지 않았을 가능성이 있음 - 의도적으로
deny했던 파일이 Glob/Grep에서 표시되지 않았었는지 확인할 것
💡 Tips
1000ms 미만의 timeout 설정은 v2.1.162 이후로 무시됩니다. 환경 변수 MCP_TOOL_TIMEOUT 또는 기본값이 사용됩니다. claude mcp get을 실행하면 주의 사항이 표시됩니다.
대응:
MCP 서버 설정의 timeout이 1000ms 미만으로 되어 있다면 설정을 재검토해 주세요.
이번 릴리스에서 가장 많은 수정이 이루어진 부분은 claude agents 명령입니다.
수정된 결함 목록:
| 결함 | 수정 내용 |
|---|---|
| 백그라운드 서비스 재시작 후의 연결 바운스 (Connection Bounce) | 재시작 직후의 attach가 세션 목록에서 튕겨 나가는 문제를 수정 |
| ... |
또한, 신규 기능으로 claude agents --json 출력에 waitingFor 필드가 추가되었습니다.
대기 중인 세션이 무엇에 의해 차단(block)되고 있는지 프로그램에서 확인할 수 있게 되었습니다.
Before (v2.1.162 이전):
{
"sessions": [
{
...
After (v2.1.162 이후):
{
"sessions": [
{
...
활용 예시:
# 권한 프롬프트 대기 중인 세션 추출
claude agents --json | jq '.sessions[] | select(.waitingFor == "permission_prompt")'
Before (오작동하던 설정):
{
"mcpServers": {
"my-server": {
...
After (수정 후 권장 설정):
{
"mcpServers": {
"my-server": {
...
또는 환경 변수로 제어:
export MCP_TOOL_TIMEOUT=5000
명시적인 deny의 예 (v2.1.162부터 올바르게 작동):
{
"permissions": {
"deny": [
...
v2.1.162에서는 시작 시 표시가 더욱 깔끔해졌습니다:
- 「Claude in Chrome enabled」, 「marketplace installed」 등의 시작 메시지 삭제
- 모델 자동 업데이트 및 팀 온보딩(onboarding) 힌트는 로고 아래의 조용한 알림으로 표시
- 엔드포인트 보안의 새로운 바이너리 스캔을 기다리도록 개선 (기존에는 5초 만에 실패했음)
Claude Code v2.1.162의 주요 포인트는 다음 3가지입니다:
권한 제어의 중요 버그 수정
-
WebFetch의 명시적인 deny/allow 규칙이 사전 승인된 도메인에서도 올바르게 작동하도록 수정
-
Windows 환경에서의 경로 매칭(path matching) 및 파일 숨김 기능 정상화
claude agents의 대폭 개선
-
연결, 입력, 표시와 관련된 6건 이상의 결함을 일괄 수정
-
waitingFor필드를 통해 차단 요인을 프로그램에서 파악 가능
MCP / LSP의 안정성 향상
- 1000ms 미만의 timeout 설정이 실수로 모든 도구 호출을 중단하던 문제를 해결
- 이모지를 포함한 문자열로 인한 API 400 에러를 수정
특히 Windows 사용자와 WebFetch에 명시적인 권한 규칙을 설정한 사용자는 동작 변화가 발생할 가능성이 있으므로, 업데이트 후 설정과 동작을 확인하는 것을 권장합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기