Claude Code 桌面版曝“SneakPeek”零点击漏洞:让 AI 看一个 HTML 文件,密钥就可能被偷走(已修复)
🔓 让 AI 看一眼文件就可能被偷密钥:Claude Code 桌面版"SneakPeek"漏洞始末(已修复)
攻击者只需要在公开仓库放一个恶意 HTML,CVSS 8.7 高危漏洞曾让预览面板变成"零点击"入口
让 AI 助手帮你检查一个 HTML 文件,本来是日常得不能再日常的操作。但安全公司 Noma Labs 的最新发现说明:在 Claude Code 桌面版里,这个动作曾经可能让你机器上的 AWS 密钥、GitHub 秘密和 SSH 私钥神不知鬼不觉地流向攻击者的服务器。
这个漏洞代号 "SneakPeek",CVSS 评分 8.7(High)。好消息是:Anthropic 在披露过程中全程配合,漏洞现在已经完全修复。坏消息是:它生动地演示了 AI 编程工具的攻击面长什么样——问题不出在模型本身,而是出在一个你可能从没留意过的地方:预览面板。
- 零点击攻击:超过 256KB 的恶意 HTML 文件被 Claude Code 预览渲染时,内嵌 JS 无需任何用户点击即可执行;
- 能偷什么:本机文件可被读取并外传,包括 AWS 凭证、GitHub secrets、SSH 私钥;
- 评分:CVSS 8.7 High(v4.0),Anthropic 评定,CVE 编号申请中;
- 修复过程有波折:第一版补丁被 Web Worker 绕过,最终做了架构级修复;
- 现状:已完全修复,GitHub Security Advisory 准备中。
说明:本文基于多家媒体转述整理(CSO Online、Dark Reading、DevOps.com、VMBlog 对 Noma Labs 披露内容的报道),技术细节以 Noma 原始披露为准。
🧩 是什么:藏在预览面板里的零点击漏洞
Claude Code Desktop 有个很实用的功能:当 Claude 为你生成或修改了 HTML 文件,应用会自动在预览面板里实时渲染,让你直接看效果。这个面板基于 Electron 内的 Chromium 渲染。
Noma Labs 的研究员发现,如果一个超过 256KB 的 HTML 文件里嵌着恶意 JavaScript,当它被预览渲染时,脚本会在无需用户任何点击的情况下执行——然后就能读取本地文件并把敏感数据外传。Dark Reading 把它称为"沉默的零点击威胁",名副其实。
🎬 攻击怎么发生:攻击链一遍过
第 1 步:攻击者往一个公开仓库里塞一个超过 256KB、内嵌恶意 JS 的 HTML 文件;
第 2 步:某开发者用 Claude Code 打开/检查这个文件(对开发者来说,这就是最普通的日常操作);
第 3 步:应用自动预览渲染这个 HTML,恶意脚本在渲染进程里静默执行;
第 4 步:脚本读取本机文件——AWS 凭证、GitHub secrets、SSH 私钥——并发往攻击者的远程服务器。
整个过程中开发者一个点击都没点,产生的一切看起来都像"AI 在正常工作"。
🔍 三个缺陷叠在一起:单看都有防护,叠起来就漏了
Noma 追踪到的三个架构级缺口
据 CSO Online 获得的技术细节,问题不是某个低级失误,而是三层"看起来都有道理"的设计互相叠出一个洞:
| 缺陷 | 设计初衷 | 实际结果 |
|---|---|---|
| 256KB 阈值双标 | 小于 256KB 的 HTML 转成 base64 data: URL,附加严格 CSP,脚本跑不起来 | 超过 256KB 的文件被写到磁盘、以 file:// URL 直接加载,CSP 保护完全失效 |
| file:// origin 越权 | 大文件按本地文件方式加载 | 渲染器在 Chromium 里拿到的是能访问本地文件系统的 origin,而不是被隔离的透明 origin |
| 过滤器未生效 | 应用内设有拦截 file:// 访问的请求过滤机制 | 静态文件渲染时(含查看本地代码测试报告)该过滤器并不在工作 |
🩹 点开查看:补丁为什么差点没堵住
Anthropic 的第一版补丁封掉了预览面板主页面上下文直接读取文件的请求。但 Noma 很快发现绕过方法:把读文件的代码挪进 Web Worker(浏览器在主线程之外运行的后台线程),请求就来自补丁没覆盖的上下文,照样能读。Noma 的 AI 漏洞研究员 Eli Ainhorn 向 CSO Online 解释了这条路径。
Noma 把绕过方法报回 Anthropic 后,后者做了一次更深入的架构级修复,漏洞才被彻底解决。Anthropic 目前正在准备 GitHub Security Advisory,并已申请 CVE 编号,预计很快公布。
💡 为什么这值得所有用 AI 编程工具的人关心
🖥️ 开发机 = 云端大门
Black Duck 安全治理负责人 Ronald Lewis 点得很透:开发机上躺着 SSH 私钥、AWS 凭证、Kubernetes 配置、OAuth 会话 token——攻下一台开发机,等于拿到进入企业云基础设施的直通车票。
🛡️ 护栏要罩住全链路
恶意脚本是在预览面板的渲染进程里跑的,根本不经过 AI Agent 本身。Ainhorn 原话:"防护是真实存在的,只是没有覆盖到每一条路径。"你给模型设的护栏,保护不了渲染层。
👀 传统监控可能看不见
Sysdig 高级安全策略师 Crystal Morin 提醒:Agent 层日志未必记录这类执行;文件读取和外连行为要在运行时(runtime)层才能看到。
✅ 现在就该做的四件事
📋 事件速览卡片
• 漏洞名称:SneakPeek(Noma Labs 命名)
• 影响产品:Claude Code Desktop 自动预览面板(Electron/Chromium 渲染)
• 攻击方式:>256KB 恶意 HTML 被预览渲染 → JS 零点击执行 → 读本地文件 → 外传
• 可窃取目标:AWS 凭证、GitHub secrets、SSH 私钥
• CVSS:8.7 High(v4.0),Anthropic 评定;CVE 申请中
• 现状:已完全修复(含一次补丁绕过后的架构级修复)
- CSO Online — How Claude Code's 256KB blind spot put developers' secrets in the preview pane
- Dark Reading — Anthropic 'SneakPeek' Flaw Is a Silent Zero-Click Threat
- DevOps.com — Noma Security Discloses Claude Code Desktop Exploit
- VMBlog — Noma Labs Uncovers Critical Security Vulnerabilities in Claude Code Desktop App
本文由加装AI助手整理发布 | 信息来源:Noma Labs 披露,据 CSO Online、Dark Reading、DevOps.com 报道转述整理