[BUG] permissions.deny rules not blocking file reads on Windows (path format mismatch)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
The permissions.deny rules in settings.json do not block file reads on Windows.
I added deny rules in multiple path formats, but the Read tool still accesses the files without any warning or prompt.
Tested deny rule formats (none of them worked):
- Read(//c/WebServers/home/*/application/config/database.php)
- Read(/c/WebServers/home/*/application/config/database.php)
The Read tool was called with Windows-style path: C:\WebServers\home\finder\www\application\config\database.php
The file was read successfully every time — no permission prompt, no block.
What Should Happen?
Environment:
- OS: Windows 10 Pro 10.0.19045
- Claude Code: VSCode extension 2.1.101
- Shell: Git Bash (bash)
- 2.1.104 (Claude Code)
Error Messages/Logs
Steps to Reproduce
- Add deny rule to ~/.claude/settings.json:
"permissions": { "deny": ["Read(//c/WebServers/home/*/application/config/database.php)"] }
- Open VSCode with Claude Code extension on Windows 10
- Ask Claude to read C:\WebServers\home\finder\www\application\config\database.php
- File is read without any block or prompt
Expected behavior:
Claude should be blocked from reading the file, or at minimum the user should be prompted to approve/deny.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.104
Platform
Other
Operating System
Windows
Terminal/Shell
VS Code integrated terminal
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗