Postman 被曝未经同意向 Codex 与 Claude Code 自动安装插件并自批信任 Hook
2026 年 10 月下旬,一名开发者在 Postman 支持追踪器提交 issue 14370 称:macOS 上打开 Postman 桌面版 12.33.4 后,应用在未获得单独授权的情况下,自动向 OpenAI Codex 和 Claude Code 两个编程 Agent 写入了插件、启动 Hook、远程 MCP 连接和 CLI 工具,并由安装器代码把自己的 Hook 标记为受信任,绕过了原本应由用户在 Agent 宿主端确认的信任环节。社区随后在 GitHub、Hacker News 上展开批评,多名开发者在后续版本(含 12.35.1)和 GitHub Copilot 设置中发现了同类 Postman 条目。Postman 方面回应称,随桌面应用捆绑 CLI 与 Agent 插件是因为很多用户自行安装接线有困难,组件可在应用内删除,目前正在重新审视 Hook 审批和会话启动行为,并会把现有用户的同意提示做得更清晰。需要先厘清的口径是:现有报告并未证明 API 数据外泄 —— 远程 MCP 连接因缺少认证并未连通,报告者本人也明确不主张数据被外传;事件目前仍属于配置越权与同意边界问题,且尚未在干净环境中复现,部分版本范围和影响面仍待 Postman 进一步确认。
一、事件时间线
| 时间 | 事项 |
|---|---|
| 2026-10-24 09:34 UTC | Postman 桌面版日志记录一次 auto-existing-upgrade 自动升级,结果为 claude-code:installed、codex:installed |
| 2026-10-25 | 报告者 indicava 发现 Codex 反复弹出 MCP 认证报错,并持续提议使用 Postman 工具处理 API 任务 |
| 2026-10-25 前后 | issue #14370 在 Postman 支持追踪器提交,标题直指桌面端自动安装 Codex/Claude 插件、安装器试图信任自身启动 Hook |
| 2026-11-02 | issue 获得首条回复 |
| 2026-11-03 | 帖子被转至 Hacker News,热度超 1100 分;GitHub 评论超 30 条;Postman 以公司名义在 issue 内作出说明;另有用户在 12.31.3→12.35.1 升级后复现同类安装 |
| 2026-11-04 | 多家科技媒体跟进报道,社区关注焦点集中在信任边界、企业安全与卸载残留 |
二、Postman 在两个 Agent 中留下的改动痕迹
根据 issue 保留的日志、插件源码(revision 6c8e452e)和受影响机器上的配置,改动主要分布在以下位置:
| 位置 | 改动内容 |
|---|---|
| Codex 全局配置 ~/.codex/config.toml | 新增 postman marketplace(git 源)、启用 postman@postman 插件、写入启动 Hook 及 hooks.state 信任记录 |
| Codex 启动 Hook hooks/session-start-context.md | 会话启动、上下文清理与压缩时触发,指示 Agent 在处理 API 设计、实现、Mock、测试、监控、文档、部署等非琐碎任务前,先加载 postman:api-engineer 技能并遵循其指引 |
| 远程 MCP 连接 mcp.postman.com | mcp.codex.json 指向 https://mcp.postman.com/mcp(Codex 插件 1.1.0);该连接因缺少认证未连通,Codex 日志报 "Auth required" |
| Claude Code 用户设置 | ~/.claude/settings.json 启用 postman@claude-plugins-official 插件 v2.0.1,安装时间戳同为 10 月 24 日 |
| 用户主目录 | ~/.local/bin 下安装独立的 Postman CLI 可执行文件 |
补充说明:Hook 指令文件中注明,AGENTS.md、CLAUDE.md 等项目指令优先级高于该 Hook;但优先级不等于用户授权 —— 默认在用户开口之前就触发,仍然属于用户没有分配过的行为。
三、争议核心:安装器给自己的 Hook 批了信任
- 插件源码 installer/src/hosts/codex-hooks.ts 导出 approvePostmanHook 函数:先查询 Codex 的 hooks/list,确认安装的会话启动文件存在后,调用 config/batchWrite 把该 Hook 的 trusted_hash 写入 Codex 设置。
- 源码注释写明:"Approves only Postman's current hook after installation"(安装后仅批准 Postman 当前 Hook)。
- 按正常流程,Hook 信任属于用户在 Agent 宿主应用内作出的决定;本次是厂商安装器在同一次安装流程中,替自己的 Hook 完成了信任批准。
- 报告者在受影响机器上确实发现了对应信任记录,但同时注明:该记录不能单独证明是谁写入的。
四、其他开发者复现与延伸发现
- 第二名用户在 Postman 从 12.31.3 升级到 12.35.1 后,同样由 auto-existing-upgrade 路径安装了 CLI 以及 Claude Code、Codex 插件;该用户未在 Codex 设置中发现 Hook 信任记录,也没有数据被上传的证据。
- 另有评论者在 GitHub Copilot 的设置文件中发现 Postman 条目,且 Postman 应用内的卸载选项并未把这些条目从 Copilot 中移除。
- 同一线程提到 Cursor 中已存在 Postman 插件;OpenCode、Pi 等工具是否受到同类影响,目前没有得到确认。
五、数据外泄口径:现有证据到哪一步为止
- 已确认:远程 MCP 连接被配置到 Codex,但在受影响机器上因认证失败未能建立连接。
- 报告者明确边界:issue 不主张、也未证明发生 API 数据外泄;部分社交平台标题所称 "试图共享全部 API 数据",在 issue 证据中并不成立。
- 尚未确认:事件只在单台报告机器上被记录,尚未在干净 Mac 环境复现;触发该自动升级路径的版本范围、功能开关,以及登出状态下是否复现,都还没有结论。
- 社区中存在关于 "API 数据可能被拦截发送" 的猜测,但 GitHub 报告内没有对应证据,不应与已记录的配置越权事实混为一谈。
六、Postman 的回应要点
- 捆绑理由:CLI 与 Agent 插件随桌面应用一同分发,原因是不少用户反馈单独安装、手动接线比较困难。
- 告知与移除:称相关提示已放在下载页和更新流程中,各组件可以在应用内删除;下载页现已写明 "The Postman app includes Postman CLI & Postman plugins",但有评论者通过网页存档指出,10 月 26 日页面上还没有这句说明。
- 正在调整:承认用户不满,承诺把针对存量用户的安装同意请求做得更清楚,并重新审视 Hook 审批机制以及 Agent 会话启动时加载的指令。
- 回应身份说明:issue 内公司名义回复对应的 GitHub 账号,未被平台标记为 Postman 成员;产品负责人 Sarabmeet Kallar 另经公关渠道向媒体给出了口径一致的说明。
七、受影响用户可自查的位置
如果同时安装了 Postman 桌面版和编程 Agent,可按以下清单核对:
- ~/.codex/config.toml:是否存在 postman marketplace、postman@postman 插件以及对应的 hooks.state 条目。
- ~/.claude/settings.json 与 ~/.claude/plugins/installed_plugins.json:是否存在 postman@claude-plugins-official。
- ~/.copilot/settings.json:是否存在 Postman marketplace 或插件条目。
- ~/.local/bin/postman:是否存在自己并未手动安装的 Postman CLI。
清理注意事项
- 应用菜单 Help → Postman CLI and Plugins 可用于卸载 Agent 插件;但 Copilot 等第三方工具中的条目可能不会被一并清除,需要手动检查。
- 仅卸载 Postman 桌面应用,不会自动清理写入各 Agent 配置里的插件、Hook、MCP 连接和 CLI,残留需要逐项核对。
- 报告者提出的诉求是:对存量用户停止自动安装 Agent 插件、改为显式 opt-in;移除安装器自批 Hook 的机制;把启动指令收窄到用户明确请求使用 Postman 的场景。
【常见问题】
问题 1:Postman 在 Codex 和 Claude Code 里具体安装了什么?
回答 1:根据 issue 14370 记录,Postman 桌面版在自动升级路径下,向 Codex 写入了 postman marketplace、postman@postman 插件、启动 Hook 和远程 MCP 连接(mcp.postman.com),向 Claude Code 启用了 postman@claude-plugins-official v2.0.1 插件,并在用户目录安装了 Postman CLI;Codex 配置中还出现了安装器写入的 Hook 信任记录。
问题 2:Postman 给自己的 Codex Hook 批信任是怎么回事?
回答 2:插件源码 codex-hooks.ts 中的 approvePostmanHook 函数会在安装后查询 Hook 列表、确认启动文件存在,然后把 Postman 自身 Hook 的 trusted_hash 写入 Codex 设置。按正常流程,Hook 信任应由用户在 Agent 宿主端确认,本次相当于安装器替自己完成了信任批准;报告者同时注明,仅凭机器上的信任记录不能证明写入者身份。
问题 3:这次 Postman 事件有没有证据表明 API 数据被泄露?
回答 3:现有报告不支持数据外泄结论。远程 MCP 连接在受影响机器上因缺少认证未能连通,Codex 日志报 "Auth required",报告者明确表示不主张数据被外传;关于拦截并上传 API 数据的说法属于社区猜测,issue 中没有证据。事件目前定性为配置越权与同意边界问题,影响范围仍在确认中。
问题 4:已经装了 Postman 桌面版,怎么检查 Codex、Claude Code 里有没有被写入插件和 Hook?
回答 4:重点检查四处:~/.codex/config.toml 中的 postman marketplace、插件和 Hook 条目;~/.claude/settings.json 与插件清单中的 Postman 插件;~/.copilot/settings.json 中的 Postman 条目;~/.local/bin/postman CLI。可通过应用内 Help → Postman CLI and Plugins 卸载插件,但第三方工具条目和桌面端卸载后的残留需要手动逐项核对。
【参考资料】
- [2026-11-04](Postman без спроса прописался в Claude Code и Codex. Разрабы в ярости)dev.by
- [2026-11-04](Postman Caught Secretly Installing AI Plugins: Desktop App Altered Claude Code and Codex Without Developer Consent)dev.ua
- [2026-11-04](Postman тайно внедряется в ИИ-агентов и перехватывает API-задачи)thecode.media
- [2026-11-04](Postman auto-installed plugins into Claude Code and Codex)Idlen
- [2026-11-03](Postman installed itself into Codex and Claude)DEV Community
- [2026-11-03](Postman installs AI plugins without consent)iMasters
【免责声明】
本文基于公开 GitHub issue、插件源码及多家媒体报道整理,事件细节来自单一报告者保留的日志与配置快照,部分复现范围、触发版本和影响工具尚未经独立验证;文中对 "数据外泄"" 拦截上传 " 等说法均按未证实口径处理,不代表已发生事实。Postman 官方回应以其在支持追踪器及正式渠道发布的说明为准,本文仅作事件梳理与安全自查参考,不构成法律结论或安全审计意见;涉及企业环境的配置变更,请由内部安全与运维团队核实后处理。
