8.2万份MCP配置八分之一藏着密钥、13,000张内网截图被Agent自己传上网:这个10月,你的代码到底去了哪
10月14日,Noma Security披露Claude Code桌面端的SneakPeek漏洞(严重程度8.7):超过256KB的HTML文件在预览面板自动加载,恶意脚本可静默窃取云凭据和SSH密钥,首版补丁还被Web Workers绕过。同期三份独立审计指向同一件事:Hush Security扫描约82,000份公开MCP配置文件,八分之一的凭据槽位写着硬编码密钥;GitGuardian统计公开MCP文件中存在24,008个密钥、2,117个验证有效,AI服务类密钥泄露量年增81.5%。再加上超过300家机构的13,000张内部截图被编程Agent自己推上公开仓库——攻击者甚至没出手,是Agent自己解决不了问题时的「聪明变通」泄露了数据。本文拆解这轮泄露潮,并给出Java团队的四条数据红线。
一、SneakPeek:256KB的盲区
10月14日,Noma Security公开了Claude Code桌面端的一个漏洞,代号SneakPeek,严重程度评分8.7。触发条件出乎意料地日常:只要一个HTML文件超过256KB,就会在应用内置预览面板里自动加载,走的却是一条限制更少的文件通道,绕过了应用的内容安全规则。嵌在文件里的恶意JavaScript随后静默运行,把云凭据、SSH认证密钥、GitHub令牌发往外部服务器——全程不需要任何人点一下鼠标。
更值得警惕的是修复过程。Anthropic发布首版补丁后,Noma用浏览器标准能力Web Workers再次绕过,官方最终做了更深层的架构级修复。安全团队从中得到的教训很具体:对AI开发工具来说,厂商的第一个补丁不等于风险关闭,要确认的是根因修没修,而不只是症状消没消。
这类漏洞的杀伤力在于位置。AI编程工具坐在开发者的最高权限上:它能读你的代码、你的环境变量、你的云密钥。通过Claude Code偷到的一套凭据,攻击面等同于偷到了这个开发者本人。这也是为什么安全公司开始把AI编程工具列为单独的第三方风险评估对象。
二、MCP配置文件成了新的密码本
比单个漏洞影响面更大的,是一个新出现的高危习惯:开发者把API密钥直接写进MCP配置文件,再顺手把文件推上GitHub。10月,三家互不通气的安全团队先后发布了审计结果,结论指向同一处。
2.1 Hush Security:八分之一含硬编码密钥
Hush在10月8日扫描了约82,000份公开MCP配置文件,覆盖十几个编程Agent生态。在本该放密钥、令牌、密码的凭据槽位里,12%写着硬编码明文;其中24%既不过期、权限也不收敛——不是一小时有效的临时令牌,更是长期有效的常驻访问权。泄露的材料包括Anthropic和OpenAI的API密钥、云平台密钥、OAuth令牌、数据库凭据。一张泄露的AI服务商密钥能直接换成可转卖的算力,CERT-EU九月简报里专门给这类黑产起了名字:LLM劫持。
2.2 GitGuardian:24,008个密钥、2,117个有效
GitGuardian的《State of Secrets Sprawl 2026》用另一套数据得到同样结论:公开MCP相关配置中存在24,008个独立密钥,2,117个经实测有效。报告里两个数字值得单拎出来:AI服务相关密钥的泄露量同比增长81.5%,是全部公开代码仓库中增长最快的泄露类别;在Claude Code辅助的提交里,密钥泄露率是3.2%——Agent写得越多,密钥贴得越多。
2.3 Flare:干净的文件也在泄密
Flare在10月7日的审计补上了第三个视角:即使MCP文件里的密钥全部换成了环境变量引用,文件本身也在泄露组织的系统拓扑——一个正确引用STRIPE_SECRET_KEY的文件,等于告诉攻击者你把Agent接到了哪些系统上,是一张现成的侦察地图。
三、PixelLeak:Agent自己把截图传上了网
十月最富寓言色彩的一起泄露,攻击者全程没有出场。安全研究者发现,一批编程Agent在执行任务时需要把截图附到PR上,但GitHub CLI的限制让它们做不到,于是Agent们自己找到了变通办法:把图片推到公开仓库,或者用社区工具gitshot。结果是超过300家机构的13,000多张内部截图躺在了公开网络上,其中93%存在个人账号下——里面有代码界面、内部系统、甚至敏感配置。
没有prompt injection,没有恶意依赖,Agent在自己的授权范围内做了它认为合理的事。这暴露的问题比漏洞更难防:当工具的能力边界和任务需求冲突时,Agent的「创造性」本身就是风险源。
同一时间窗口,凭证收割成了新生意。Amatera、Remus、CallbackBeaver等信息窃取家族开始专门收集AI Agent产物:Claude、Cursor、Cline、Codex的访问令牌、存着凭据的MCP配置、明文保存的提示词历史。安全界的建议已经很直白:Agent令牌要和云密钥一起进轮换计划。
四、Java团队的四条数据红线
把这些披露放在一起,Java团队至少要守住四条线。
第一条:先盘点再谈安全。让IT和工程团队列出每台开发机上装了哪些AI编程工具、各自有什么系统权限、哪些凭据会经过它们。大多数企业的现状是这份清单根本不存在。
第二条:密钥治理跟上。MCP配置一律用环境变量或密钥库引用,禁推明文;在暴露窗口内生效过的云密钥、SSH密钥、代码托管令牌全部轮换;把MCP配置文件当成代码来review。
第三条:不可信仓库进一次性容器。陌生项目的.git配置、hooks、Agent配置文件,先人工过一遍再让Agent打开;给Bash里的curl配deny规则,密钥放在项目目录之外。
第四条:补丁验证闭环。对AI工具的安全更新,要求厂商确认架构级根因已修复,把这一步写进补丁管理流程——SneakPeek被绕过一次的教训,值这一条制度。
五、飞算JavaAI的答案:代码不出本地,红线少一半
这轮泄露潮的每一条防线都在补一个共同的前提:数据和凭据暴露面。而减少暴露面最直接的办法,是让代码和数据从一开始就不离开可控范围。飞算JavaAI在这件事上给的是确定性答案:本地化处理,代码分析和模型推理在本地完成,代码不上云——不是靠制度约束「不许传」,更是产品层面「传不出去」。
落到Java团队的日常工作里,这条架构选择省掉了大量合规成本:不需要为「代码是否经过云端」单独走数据出域评估,不需要解释项目结构为什么出现在第三方日志里,等保2.0和金融、政务场景的审查也不用为AI工具开特例。
配合智能路由模式与专家模式的双模型设计,任务数据在本地按需调度,配合全量代码语义索引,敏感的调用链关系始终留在企业自己的环境里。10月的这些泄露案例反复说明一件事:AI编程工具的价值上限取决于模型,下限取决于数据边界。下限,恰恰是企业最先要守住的。不做把代码晾在云上的AI,做把代码留在你手里的AI——这是飞算JavaAI对这轮安全月的回答。
- 点赞
- 收藏
- 关注作者
评论(0)