Permission allow rules with ** glob not matching paths outside working directory
Resolved 💬 4 comments Opened Mar 28, 2026 by rbrdelta Closed May 29, 2026
Description
Permission allow rules using ** glob patterns in ~/.claude/settings.json are not being respected for paths outside the working directory. Claude Code still prompts for approval despite matching allow rules being present.
Environment
- Claude Code version: v2.1.86 (also reproduced on v2.1.85)
- OS: WSL2 Ubuntu on Windows 11
- Working directory:
/home/rbr01 - Shell: zsh
Configuration
~/.claude/settings.json contains:
{
"permissions": {
"allow": [
"Read(/mnt/c/MCP/**)",
"Read(/mnt/c/MCP/Meta/**)",
"Read(/mnt/c/Users/deero/**)",
...
],
"defaultMode": "default"
}
}
Steps to Reproduce
- Add
Read(/mnt/c/MCP/**)to~/.claude/settings.jsonallow list - Start a new Claude Code session from
/home/rbr01 - Ask Claude to read a file at
/mnt/c/MCP/Meta/NorthStar.md
Expected Behavior
The read should be auto-approved — the path /mnt/c/MCP/Meta/NorthStar.md matches the glob Read(/mnt/c/MCP/**).
Actual Behavior
Claude Code prompts: "Read file — Read(/mnt/c/MCP/Meta/NorthStar.md) — Do you want to proceed?" with options including "Yes, allow reading from Meta/ during this session."
Evidence
- Session started at
2026-03-28T01:16:58Z(confirmed from session JSONL) settings.jsonlast written at2026-03-27T21:14:00 EDT(confirmed viastat --format='%W')- Session started 3 minutes after settings were saved — not a stale-session issue
- No project-level settings files exist that could override
- No deny rules match
/mnt/c/MCP/** - No managed/enterprise policies present
- PreToolUse hook only logs and exits 0 — does not interfere
/mnt/c/MCPis a real directory (not a symlink)- Similar pattern
Read(/mnt/c/Users/deero/**)does work in the same session for paths like/mnt/c/Users/deero/Downloads/file.png
Additional Context
- Both
Read(/mnt/c/MCP/**)andRead(/mnt/c/MCP/Meta/**)are in the allow list — neither matches - The path
/mnt/c/MCP/is a WSL2 mount of a Windows drive (C:\MCP) - This has been a recurring issue across multiple sessions, not a one-off
🤖 Generated with Claude Code
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗