MCP 服务器安全竟取决于 $HOME:作者审计发现环境变量皆不可信
Relevant_Mousse_9117 · reddit · 2026-11-10
一位开源 MCP 服务器维护者(凭证存于 OS keychain、agent 只能调用白名单操作)在审计时问了一个问题:这个进程是谁启动的?答案发现 agent 完全可以决定运行环境,而他一直在读取这个环境做安全决策:
- PATH:通过 npx 启动的包装型服务器按调用方 PATH 查找,PATH=./bin:$PATH 即可让 agent 自己的脚本拿到 env 里的 GitHub token
- SystemRoot(Windows):审批对话框指向的是 agent 指定的 PowerShell,伪造的 PowerShell 可批准一切提示
- HOME:SFTP 工具「永不触碰 /.ssh」的规则正是从 $HOME 构建的
修复后这些值改从 OS 读取,子进程以清空环境启动。核心教训:如果 agent 能启动你的工具,那么每一个环境变量都是 agent 的输入。
「编程与Agent」频道最新
- OpenCode v2.2.7 发布:接入 Copilot Auto 路由并优化面板快捷键 — github-actions[bot] · 2026-11-10
- 给 AI 写 skill 还是复用人类文档?开发者征集方案 — IllustriousFault6218 · 2026-11-10
- 单条提示词 2.5 小时:Fable 5.2 在 Blender 完整建模布加迪并渲染成片 — socialwithaayan · 2026-11-10
- 把网页打包成桌面应用:tw93 的 Pake 下载量已超 53.9 万 — Aiden_Tech_Ai · 2026-11-10
- Frontier3DBench:145 个任务实测编码智能体能否替代 3D 视觉管线 — Aiden_Tech_Ai · 2026-11-10
- LASIK 开源:反向剥离反 AI 混淆,token 消耗从 2100 万降到 1.7 万 — morphh7 · 2026-11-10