anthropics / anthropics/claude-code

permissions.blockReadsOutsideWorkingDirectories ignores additionalDirectories from project and local settings

未关闭
#92,582 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
area:permissions bug has repro platform:macos
主要语言
Python
星标
145k
派生
23.1k
PR 合并指标
PR 指标待抓取

描述

**Environment**
- Claude Code 2.1.263 (CLI and Claude desktop app 1.46388.4, macOS 25.6)

**Setup**
- User settings (`~/.claude/settings.json`): `permissions.blockReadsOutsideWorkingDirectories: true` and `permissions.additionalDirectories: [A, B]`
- Project `.claude/settings.json` (trusted; `hasTrustDialogAccepted` is `true`, and the trust dialog was re-shown and accepted after resetting the flag): `permissions.additionalDirectories: [C, D]` (absolute paths)
- Also tried an untracked `.claude/settings.local.json` with the same `[C, D]`

**Observed**
- The session's environment header lists A, B, C and D as additional working directories, so the settings are being read.
- Read/Grep/Glob refuse files under C and D with: `... is outside , A, B; the permissions.blockReadsOutsideWorkingDirectories setting blocks reads outside the working directories. Ask the user to add the directory with /add-dir, or to remove that setting.` Only cwd, A and B are listed as allowed.
- The Bash sandbox's read allow-list (`allowWithinDeny`) also contains only cwd, A and B, so `cat` under C fails with `Operation not permitted`.
- `/add-dir C` in the same session works.
- Same result in freshly started sessions, with the project file tracked in git and with the local file untracked.

**Expected** (per docs, permissions.md "Working directories" and "Project allow rules and workspace trust")
- Project/local `additionalDirectories` apply once trust is accepted, and files there are readable without prompts. The read fence should include them.

**Impact**
- Unattended scheduled sessions cannot use project-declared additional directories at all while the read fence is on, since `/add-dir` needs an interactive session.

贡献指南

这个仓库没有索引到贡献指南

调研方向

Reproduce with trusted project .claude/settings.json or settings.local.json, blockReadsOutsideWorkingDirectories enabled, and additionalDirectories C and D. Trace how these settings reach the Read/Grep/Glob fence and Bash allowWithinDeny, comparing the behavior with /add-dir. Done means a fresh session permits access to C and D without interactive /add-dir.

由索引模型根据 Issue 内容生成。

评估

技术栈
python
领域
cli, security
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
活跃
描述清晰度
基本清楚
新手友好度
52/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。