很多人以为:只要不把服务暴露到公网,就安全。
这句话,在 Agent 桌面端面前开始失效。
我们在自有机器上确认过一条链——WorkBuddy 开着的时候,一张网页有机会摸到本机文件,一路摸到明文落盘的登录相关信息。 不用黑腾讯机房,不用骗你输密码,甚至不用你打开它的画布。App 在后台听端口,浏览器在前台办事。
打的是 127.0.0.1。你以为只有自己能碰的那个地址。

门怎么开的
WorkBuddy 会在本机拉起一条 Ardot MCP 能力面(我们观测时是 127.0.0.1:50551)。设计本意大概是让画布、工具、本地能力串起来——很合理。
不合理的是当时这扇门的状态:
没钥匙也能进。 工具列表、工具调用,本机谁都能喊。对网页几乎不设防。 CORS 放开到谁来都欢迎。读文件的手太长。 本该服务于业务的本地读写,没有把路径锁死在沙箱里。还有一条可被伪造的本地中继。 读出来的东西,能被送走。

更扎心的是:同产品里另一条通道(Connector Proxy)其实已经会验 Secret、会卡 Origin——说明团队不是不会做安全,只是 两条本地通道没有对齐到同一条底线。
Agent 产品最常见的事故模式,往往不是「完全不懂」,而是「主路径加固了,旁边那条 MCP 忘了」。
我们报了,也修了
材料交了 TSRC。对方回复:无效——已有人提交过。
没奖金,不记分。问题是真的,而且别人撞得更早。接受。
官方随后修了。我们按新版本又打了一遍:原先那条路,死了。
所以今天写这篇文章,不是教你怎么打别人电脑——请先升级到最新 WorkBuddy。写它,是因为这类洞不会只出现一次。
真正吓人的不是 WorkBuddy,是趋势
以后每个「能帮你干活」的桌面 Agent,都很可能在本机挂着:
HTTP / WebSocket / MCP 能读文件、能跑命令、能接模型
用户看见的是一个图标。攻击者看见的是:一台开着门的本地服务器,而且门牌写着 localhost。
浏览器对「访问本机」的拦截(所谓 PNA)也别神话。环境一变,表现就变。我们自己的测试里,就见过公网 HTTPS 页仍然摸到本机服务的情况。产品不关门,指望浏览器罩着你,不稳。
记住一句就够:
Agent 把能力接到 127.0.0.1 的那天起,localhost 就不再等于「私密」。
所以我们做了 MCP Guard
厂商修一个洞是一次。你机器上会冒出的本机端口,是一串。
MCP Guard 干的事很直接:
扫——本机哪些口像 MCP盯——谁在连、像不像不该出现的客户端记——留审计,别等出事再猜另外还有 git-scan:防止推理密文那种「看着像乱码」的门票误传进仓库(最近那篇偷思维链论文,讲的就是这类)
ounter(lineounter(lineounter(linemcp-guard scanmcp-guard watchmcp-guard serve

国内:https://gitee.com/shinjiyu/mcp_guard国际:https://github.com/shinjiyu/mcp_guard
WorkBuddy 这条链,是我们动手做这个工具时最具体的那根刺。刺拔掉了;刺还会长在别的产品上。
夜雨聆风