ARTICLE · 1321174
Cursor扩展投毒与Postman插件越界:AI 开发者工具的信任危机
近期 AI 开发者工具圈连着出了两件事。一件是 Cursor 扩展市场被投毒,坏人伪装成官方;另一件是 Postman 自己越界,官方替用户签了字。两件事性质不同,但指向同一个习惯——我们太容易因为“名字熟”就交出信任。
先分开说清楚,再合起来讲。
一、Cursor 扩展投毒:坏人装成官方
被投毒的是 Anthropic.claude-code 扩展,受影响版本 2.1.312 和 2.1.313,官方明确说明这两个版本并非 Anthropic 开发。时间窗约十一个小时,官方称“最多影响约 5000 名用户”。
这个 5000 要说准:它是潜在风险面,不是“已有 5000 台被完整远控”的确认数字。公告也提到,多数非管理员场景下,恶意代码想打开本机 SSH 服务那一步通常会失败。失败,但不等于是免检。
这次恶意代码有几个特点值得单独拎出来:
不需要你点任何东西。 攻击者在正常代码前插入了约 66 行的立即执行函数(IIFE)。只要编辑器加载这个扩展,恶意代码就会瞬间跑完,不需要你主动打开 Claude Code 面板。“我没用它”不构成防护,扩展被加载的那一刻,窗口就开了。
收集环境变量,只收名字不收值。 恶意代码筛选最多 40 个包含 key、token、secret 等字样的环境变量,只收集变量名。很多人看到这里会松一口气——密码没泄露。但变量名本身就是情报:攻击者不用拿到密钥,就能知道你用了哪家云、哪套 CI、哪个平台的 token。这是侦察,不是收网。
Linux 同样在风险面内。 Cursor 官方公告只列了 Windows 和 macOS,但安天等机构分析发现,载荷包含 Linux 分支,会在用户 crontab 中写入 @reboot 启动项实现持久化。官方公告的平台清单,不等于攻击代码的平台清单。你按公告判断“我是 Linux 所以我没事”,恰恰可能踩空。
另外,载荷会留下独立于扩展之外的持久化脚本。卸载扩展,不等于清干净。清软件不等于清开机项,这条日常杀毒经验在这里同样适用。
二、Postman 越界:官方替用户签字
这件事性质不同:它自己是“官方”,主动越过了用户的信任边界。
2026 年 10 月 24 日起,有开发者发现打开 Postman 桌面版后,它未经用户同意,自动往 Codex 和 Claude Code 里装了 Postman 插件、CLI,还写了一条启动 hook,指令大意是:在处理任何“非平凡的 API 工程任务”之前,先加载 Postman 的技能并遵循它。更让人不适的是,安装器源码里有一段逻辑,会自己批准自己的 hook,把信任记录直接写进配置文件,绕过了本该由用户确认的那一步。
Postman 的官方回应是“为了帮用户省事”,后来又说要重新设计、会回滚改动。但回滚不删除已经装上的东西,社区的反应已经很说明问题:有人直接把这行为类比成恶意软件。
清理路径记一下:检查 ~/.codex/config.toml 里有没有 postman 相关段落,~/.claude/settings.json 里有没有 postman@claude-plugins-official,~/.local/bin 下有没有多出来的 postman 可执行文件。不需要的话,在 Postman 的 Help 菜单里找卸载入口,或者用 npx @postman/postman-plugin remove。别指望“回滚”会替你收拾干净。
三、两件事合起来,说明了什么
Cursor 那次,是坏人伪装成官方,你被冒名者骗了。Postman 这次,是官方自己决定替你做主。 前者考验的是你核验来源的能力,后者考验的是你对“可信工具”的授权边界是否保持警觉。
一个来自外部,一个来自内部。对外部攻击,防线是“别乱装”;对内部越界,防线得是“别默认信任,哪怕它名字你天天见”。
两件事拼在一起,其实补全了同一句话:熟名不仅可能骗你,还可能替你签字。 装扩展、装工具、跑更新的时候,多花那半秒看一眼它到底要动什么、写什么、信什么——这个习惯,对陌生包有用,对 Postman 这种老朋友,同样有用。
还有一层共同背景:AI 编程扩展拿到的权限,往往接近本机代理。它能碰终端、能碰仓库、能碰你随手放在环境变量里的云密钥。可我们给它的信任,经常还是应用商店那一套——看见熟名就点安装,更新弹窗一出就“全部更新”。便利本身就是攻击面。给改主题配色的扩展偷懒,和给 SSH 级权限的扩展偷懒,代价不是一个量级。
四、作为开发者,后续装扩展我会写死的几条习惯
1. 先核渠道,再看名字。 优先官方渠道和你信得过的发布者字段。熟名可以骗人,渠道和签名才是边界。
2. 能钉版本就钉版本。 主题包可以懒,能碰终端和密钥的扩展别懒。更新前多看一眼变更说明和版本号,再决定要不要“全部更新”。
3. 最小权限,能拆就拆。 不是每个扩展都值得拿到和你跑客户代码同一台机器的全部能力。开发机、发布机、存主密钥的地方,能分就分。听着麻烦,比事后全盘轮换便宜。
4. 卸载不等于清干净,检查要走到位。 如果装过 Claude Code 那两个版本,或记不清有没有在时间窗内自动更新过,按官方公告走一遍自检:核对版本号、用 svc-telemetry 检测命令查 authorized_keys、按官方 remediation 脚本处理残留、升到 2.1.314。若命中或高度怀疑中过,从一台可信的干净机器轮换云密钥、Git 凭据、平台 token 和还开着的登录会话——别在还没清干净的同一台机器上“顺便”换完所有密钥。
5. Linux 用户别按公告平台清单自我豁免。 公告列的是已知影响面,不是攻击代码的能力边界。
6. 对“官方自动帮你装”保持警觉。 哪怕它是比较熟悉的应用工具。安装它后,顺手看看它往你的配置目录、启动项、CLI 路径里写了什么。信任是逐次授权的,不是一次性买断的。
最后
我不会因为这两件事停用 Cursor 或其他应用软件,也不会喊“别碰一切 AI 编程”。工具没有原罪,偷懒的信任习惯才有。
这次真正想提醒的,不是让你把键盘收起来,而是把“验证渠道”和“看清授权边界”从可选项改成默认项。熟名也会骗人,官方也可能替你做主,卸载可能不够,该升的版本别拖。
继续用。只是下次手伸向“全部更新”、或者打开一个“老朋友”之前,多停半秒。















































































