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」频道最新

更多「编程与Agent」频道 AI 资讯 →