Claude Code 沙箱 bug:PID namespace 下 Read 工具误报图片文件不存在
mleungdev · ghdev · 2026-10-17
anthropics/claude-code 的 issue #102816 报告:自加固文件读取路径上线后(2.1.284 复现,2.1.301 仍存在),当 Claude Code 运行在 PID namespace 中且 /proc 并非该 namespace 自己的 procfs 时(如 rootless runc / bubblewrap 沙箱 bind-mount 父进程 /proc 的场景,Kubernetes 屏蔽 /proc 的容器很常见),Read 工具对所有图片和 PDF 报 "File does not exist",同目录文本文件正常。
根因:打包 JS 中加固读取路径用 namespace 内 pid 重新打开文件描述符:/proc/${process.pid}/fd/${e}。当 /proc 属于其他 PID namespace 时该路径不存在或指向别的进程,重开失败返回 ENOENT。旁边的 symlink 检查辅助函数用的 /proc/self/fd/${e} 则跨 namespace 都可用;改用 /proc/self/fd 或对已打开的 fd 直接 fs.readFile 即可修复。
复现:作者给出无需容器的最小 Linux 复现脚本(生成小 PNG 后用 claude -p 加 --allowedTools Read 测试),2.1.181 在同一沙箱中工作正常。
「编程与Agent」频道最新
- 50+ 免费 AI Agent 学习资源合集:视频与仓库一站打包 — ifioknkem · 2026-10-23
- 自封「全网最佳」的免费 AI Agent 资源库引围观 — ifioknkem · 2026-10-23
- Vercel 推出免注册部署:拖拽文件到首页即得线上 URL — steren · 2026-10-23
- 5 个 Claude Code 会话经 MCP 互发邮件,组队攻破多品牌网络摄像头 — doodlestein · 2026-10-23
- Vercel 上线 vercel deploy --temporary,可临时部署后自动清理 — cramforce · 2026-10-23
- 用同一个 Notion 工作区让多个 Agent 互相沟通分工,实测有效 — nbaschez · 2026-10-23