2026년 11월 9일에 출시된 Claude Code v2.1.321은 모델 추가, 보안 수정, 권한 관련 사양 변경이 복합적으로 이루어진 놓칠 수 없는 업데이트입니다.
Claude Fable 5.2(claude-fable-5-2)가 추가되어 Fable의 기본 모델이 되었으며 -
MCP OAuth의 리프레시 토큰(refresh token)이 리다이렉트 시 다른 호스트로 전송되는 문제 등 치명적인 보안 수정이 포함되었고 -
mods의 권한 처리, Claude apps gateway의 업스트림 해결 및 정책 합성 동작 방식이 변경되었습니다.
📌 영향을 받는 사용자
- Fable 5.1을
/model로 고정하여 사용하는 사용자 (Pro / Max / Team / Enterprise) -
자체 MCP 서버를 OAuth로 연결하는 사용자
- Bash /
cp / mv의 권한 규칙(deny rule 등)으로 안전성을 확보하고 있는 사용자-
auto / bypass 모드로 mods를 사용하는 사용자
- Bedrock / Vertex / Foundry용 Claude apps gateway를 운영하는 관리자
본 기사에서는 critical/high 변경 사항을 중심으로, '무엇이 바뀌었는지', '내가 무엇을 해야 하는지'를 정리합니다.
| 중요도 | 변경 내용 | 대응 필요 여부 |
|---|
| critical | MCP OAuth의 비밀 정보 유출 및 권한 체크 구멍 수정 | 필수 |
| ... | | |
새 모델 Claude Fable 5.2 (모델 ID: claude-fable-5-2)가 추가되어 Fable의 기본 모델이 되었습니다. | | |
| 항목 | 내용 |
|---|
| 모델 ID | claude-fable-5-2 |
캐시 읽기는 입력 단가의 1/40입니다. 긴 컨텍스트를 반복적으로 사용하는 Claude Code와 같은 용도에서는 캐시가 작동하는지 여부가 비용에 큰 영향을 미칩니다.
저장되어 있던 Fable 5.1의 모델 지정은 별칭(alias) fable (현재는 Fable 5.2)로 이동됩니다.
| 플랜 | 이전 시점 |
|---|
| Pro / Max | 즉시 |
| Team / Enterprise | 조직이 허가한 시점 |
⚠️ Breaking Change
'5.1을 지정했다고 생각했던' 설정이 의도치 않게 5.2로 변경됩니다. 출력 경향이나 비용이 달라질 수 있으므로, 재현성이 필요한 워크플로우는 주의해야 합니다.
5.1로 되돌리려면 다음 명령어를 사용합니다.
관련 수정 사항으로, Fable을 포함하는 플랜의 Enterprise 시트에서 Fable로 전환할 때 'Draws from usage credits' 주석이 잘못 표시되던 문제도 수정되었습니다.
이번에 가장 중요한 수정 내용입니다.
| # | 내용 |
|---|
| 1 | MCP OAuth 요청 시, 서버가 리다이렉트하면 리프레시 토큰 등의 비밀 정보가 다른 호스트로 전송되던 문제 |
| |
| 2 | 읽기 전용의 Bash 명령어가 권한 확인 없이 샌드박스 외부에서 실행되는 경우가 있었습니다 |
| 3 | Bash의 권한 체크가 잘못된 폴더를 기준으로 파일 쓰기를 판단하고, 확인 절차를 거치지 않던 경우가 있었습니다 |
| 4 | cp / mv로 디렉토리에 파일을 쓸 때, 해당 파일에 deny rule이나 보호 파일 확인이 적용되지 않던 문제 |
| 5 | /bin/cp처럼 경로를 지정한 cp / mv에도 일반적인 cp / mv와 동일한 경로 검사가 적용되도록 수정했습니다 |
| 6 | 이름에 문자 방향 제어 문자가 숨겨진 파일은 Claude 앱에서 다른 이름으로 보이던 문제. 이제부터는 Claude가 해당 파일의 전송을 거부합니다 |
| 7 | Windows에서 Claude Code가 스스로 실행하는 프로그램(git 등)을 찾을 때, PATH 내의 상대 엔트리, UNC 엔트리, 네트워크 공유 링크를 건너뛰고 settings에서 변경한 PATH도 반영하도록 했습니다 |
특히 1번은 리디렉션을 반환하는 MCP 서버(또는 그 경로상의 어떤 주체)에 대해 리프레시 토큰이 유출될 수 있는 내용입니다. 리프레시 토큰은 장수명(long-lived)인 경향이 있으므로, 영향 범위 파악이 중요합니다.
💡 팁
이번 입력 데이터에는 '유출이 실제로 악용되었는지'에 대한 정보가 포함되어 있지 않습니다. 본인의 환경이 영향을 받았는지 판단하기 위해 사용 중인 MCP 서버의 리디렉션 동작이나 연결 대상을 확인하고, 불안하다면 해당 서비스 측에서 토큰을 무효화(revoke) 및 재발급하는 것을 고려해 주십시오.
변경점은 다음 3가지입니다.
- Claude가 작성한 mods는
auto 및 bypass 모드에서는 확인 없이 활성화됩니다. (managed 설정에서 allowUnsandboxedCommands: false 또는 allowManagedDomainsOnly를 지정했더라도 동일합니다.)
dontAsk 모드에서는 mods를 로드하지 않습니다. mods 자체의 툴 호출(예: $.tool.call, $.mcp.call)은 확인 요청을 하지 않습니다. 사용자의 ask 규칙이 있더라도, dontAsk 또는 -p 실행에서도 동일합니다. deny 규칙과 조직 정책은 계속 적용됩니다.
- 헤드리스 세션에서
.claude/skills 내의 mods가 변경되면 자동으로 재로드됩니다. 비활성화하려면 CLAUDE_CODE_PLUGIN_DIR_WATCH=0을 설정하십시오.
⚠️ Breaking Change
'ask 규칙으로 사람의 확인을 거치는' 전제 하에 운영되던 방식은 mods를 통한 호출에는 더 이상 적용되지 않습니다. 보호하고자 하는 작업은 deny 규칙이나 조직 정책으로 표현해 주십시오.
- Bedrock, Vertex, Foundry의 업스트림은 gateway 환경에 있는
ANTHROPIC_*_BASE_URL을 무시합니다. 다른 엔드포인트를 사용하려면 업스트림에 base_url을 설정하십시오.
policy_mode: layered에서는 managed MCP 서버가 일치하는 모든 정책을 적용합니다. (이미 layered를 사용하는 gateway의 경우, 업그레이드 후 배포되는 MCP 서버가 증가하면서 match: {}를 포함하여 합산됩니다.)
| 영역 | 변경 사항 |
|---|
| managed 설정 | extraKnownMarketplaces가 엄격해졌습니다. 선언된 이름은 다른 소스로 추가할 수 없으며, 다른 항목은 표시되지 않습니다. |
| 조직 정책 | 앱(데스크톱의 Code 탭 등)이 제공하는 Claude in Chrome 도구에도 조직 정책이 적용됩니다. |
| gateway | 지출 상한 검사 생략이 감소하고, 로그인 제한 메시지에서 설정명이 제거되었으며, 오류 표시 주소에서 인증 정보가 제거되었습니다. |
| MDM (macOS) | 읽기가 느리다고 나타나던 'Unable to read managed policy settings'를 1회 재시도합니다. |
claude remote-control | --settings <file>을 추가했습니다. 시작하는 모든 세션에 설정을 적용합니다. |
| 후크 | 16 MiB가 초과되는 PreToolUse mcp_tool 후크 응답은 건너뛰지 않고 해당 툴 호출을 거부합니다. Cowork 클라우드 세션에서는 PostToolUse에서 AskUserQuestion / ExitPlanMode의 결과를 수정할 수 없습니다. |
claude -p | NFS 용량 부족/쿼터 초과로 기록 행이 손실되었을 때, 종료 코드 0이 아닌 오류 표시 + 종료 코드 1(text / json 출력)이 발생합니다. |
| fast mode | 제공이 제한되거나 장애가 발생할 경우, 먼저 동일 모델의 표준 속도를 시도합니다. |
| 셀프호스트 러너 | 불필요하다고 판단되어 거부된 온디맨드 러너는 종료 코드 0으로 종료됩니다. |
-
Claude Code를 v2.1.321 이상으로 업데이트하십시오. 중요한 보안 수정이 포함되어 있으므로 우선순위가 높습니다. - Fable 5.1 고정이 필요하다면 /model claude-fable-5-1을 다시 지정하십시오. - 신규 모델의 비용 구조(입력 $8 / 출력 $40 per Mtok)를 팀 내에서 공유해 주십시오.
-
ask 규칙은 mods의 도구 호출에는 적용되지 않습니다. 막고 싶은 작업은 deny 규칙이나 조직 정책으로 정의해야 합니다.
-
자동 재로딩이 불필요한 headless 환경에서는
CLAUDE_CODE_PLUGIN_DIR_WATCH=0
을 설정합니다. 또한, 공유 환경에서는 dontAsk 모드가 mods를 로드하지 않는 점도 인지하고 있어야 합니다.
ANTHROPIC_*_BASE_URL에 의존하던 구성은 업스트림의 base_url로 이동합니다. policy_mode: layered를 사용하는 사용자는 업그레이드 후 배포되는 managed MCP 서버가 늘어나지 않았는지 확인해야 합니다.
claude -p가 NFS로 인해 종료 코드 1을 반환할 수 있게 되어 CI의 실패 감지 측면에서는 개선되었으나, 그동안 간과되었던 실패가 명확해질 가능성이 있습니다. 또한, 16 MiB를 초과하는 응답을 반환합니다. PreToolUse 및 mcp_tool 후크는 건너뛰기(skip)가 아닌 거부(deny)로 처리됩니다.
# Before (자동 마이그레이션 후: fable = Fable 5.2)
/model fable
# After (5.1을 명시적으로 고정)
...
# headless 세션에서 .claude/skills 내의 mods 변경을 감시하지 않음
export CLAUDE_CODE_PLUGIN_DIR_WATCH=0
# 시작하는 모든 세션에 이 설정을 적용
claude remote-control --settings ./remote-settings.json
파일을 변경한 경우, claude remote-control을 재시작할 때까지 새 세션이 시작되지 않습니다.
ANTHROPIC_*_BASE_URL 환경 변수는 무시되므로, 업스트림 쪽에 base_url을 설정합니다. 아래는 개념적인 예시입니다 (정확한 스키마는 공식 문서를 확인하십시오).
# Before: gateway의 환경 변수로 엔드포인트를 전환
# ANTHROPIC_VERTEX_BASE_URL=https://example.internal/vertex
# After: 업스트림에 base_url을 명시
...
## 모델 선택
- Fable의 기본값은 claude-fable-5-2입니다 (1M 컨텍스트, $8 / $40 per Mtok, 캐시 읽기 $0.20/Mtok)
- Fable 5.1을 고정하고 싶다면 `/model claude-fable-5-1`로 명시적으로 재지정해야 합니다.
...
Fable 5.2가 추가되어 Fable의 기본값이 되었습니다. (1M 컨텍스트, $8 / $40 per Mtok, 캐시 읽기 $0.20/Mtok) - 저장된 Fable 5.1 지정은 유지됩니다. 고정하려면 fable에 자동 마이그레이션 /model claude-fable-5-1을 사용합니다.
MCP OAuth의 토큰별 호스트 전송과 Bash / cp / mv의 권한 확인 허점이 수정되었습니다 (critical). 빠른 업데이트를 권장합니다.
mods는 auto / bypass에서 확인 없이 활성화되며, 도구 호출은 ask 규칙을 우회합니다. 보호해야 할 작업은 deny 규칙 / 조직 정책으로 표현해야 합니다.
- gateway는
ANTHROPIC_*_BASE_URL을 무시하게 되었으며, layered에서는 managed MCP 서버가 전체 매치 정책에서 합산됩니다. 후크, Remote Control, 서브 에이전트, 시작 속도 등 운영 안정성에 도움이 되는 수정 사항이 다수 포함되었습니다.
이번 업데이트는 단순히 '편리해진' 것을 넘어, 기존의 권한 및 설정 전제가 바뀌는 업데이트입니다. 따라서 업데이트 후에는 모델 지정, mods, gateway 설정을 세 가지 측면에서 모두 재검토하는 것을 추천합니다.]