[控场AI]
· 6 分钟阅读· 3,423 字

Claude Code桌面版SneakPeek漏洞:已修复及应对指南

Claude Code桌面版SneakPeek漏洞:已修复及应对指南

Claude Code桌面版预览面板曝高危漏洞SneakPeek,可窃取SSH密钥与云凭证

Claude Code桌面版的预览面板存在高危安全漏洞SneakPeek(CVSS 8.7),攻击者通过诱导用户打开超过256KB的恶意HTML文件,即可在预览时执行恶意脚本,读取并外传本地的SSH私钥和AWS、GCP等云服务凭证。整个攻击链路无需用户授权点击,仅预览动作即可触发,隐蔽性极强。该漏洞已在Claude Desktop 1.30096.1版本中修复,用户应立即升级。受影响用户需轮换所有SSH密钥和云平台访问密钥,检查异常访问日志和本地文件访问记录,并通知企业安全团队。该事件也警示AI编程工具的预览类功能必须实施沙箱隔离和最小权限原则。

Claude Code桌面版的预览面板最近暴露了一个高危安全漏洞。攻击者只需诱导用户打开一个精心构造的HTML文件,就能窃取SSH密钥和云服务凭证。该漏洞编号为SneakPeek,CVSS评分高达8.7,目前已在Claude Desktop 1.30096.1版本中修复。

Claude Code桌面版SneakPeek漏洞来源

SneakPeek漏洞是什么?

SneakPeek的核心问题出在Claude Code桌面版的预览面板(preview pane)上。这个功能原本是为了方便开发者直接在编辑器内查看HTML文件的渲染效果,但它对本地文件的访问控制存在严重缺陷。

据安全研究披露,攻击者可以制作一个超过256KB的恶意HTML文件。当用户在Claude Code桌面版中打开并预览这个文件时,预览面板会执行文件中的恶意脚本,进而读取用户本地的敏感文件——包括SSH私钥和云服务凭证(如AWS、GCP等平台的访问密钥)。

CVSS 8.7的评分意味着这是一个“高危”级别的漏洞。攻击者不需要物理接触目标机器,只需要通过社工手段让用户打开一个看似正常的HTML文件,就能完成凭证窃取。

什么是CVSS评分? CVSS(Common Vulnerability Scoring System,通用漏洞评分系统)是业界广泛采用的漏洞严重性评估标准,由FIRST组织维护。评分范围从0.0到10.0,通常分为四个等级:低危(0.1-3.9)、中危(4.0-6.9)、高危(7.0-8.9)和严重(9.0-10.0)。评分综合考量攻击途径(网络、本地、物理)、攻击复杂度、所需权限、用户交互需求,以及对机密性、完整性和可用性的影响。CVSS 8.7分意味着该漏洞可通过网络远程利用、无需特殊权限,且对机密性造成高影响,属于典型的高危漏洞,应当优先处置。需要注意的是,CVSS反映的是漏洞本身的技术严重性,实际业务风险还需结合资产价值和暴露面综合判断。

预览面板的安全风险为何特别突出? 预览面板本质上是一个内嵌的渲染引擎,通常基于Chromium的WebView或类似组件实现。这类组件默认具备完整的JavaScript执行能力,并且为了渲染本地HTML文件,往往拥有对本地文件系统的读取权限。如果未实施严格的沙箱隔离和同源策略,恶意脚本就能借助fetch、XMLHttpRequest或Electron的file://协议读取任意本地文件。这也是为何HTML预览功能在Electron类应用中屡屡成为安全漏洞的高发区。

攻击链路拆解

理解攻击链路有助于判断自己是否处于风险之中。整个攻击过程可以拆解为几个关键环节:

第一步:构造恶意HTML文件。 攻击者创建一个体积超过256KB的HTML文件,这个大小阈值可能与预览面板的处理逻辑有关——超过该大小后,面板可能触发了某种不安全的降级处理或绕过机制。

第二步:诱导用户打开。 攻击者通过邮件、即时通讯或代码仓库等渠道,将这个HTML文件发送给目标开发者。文件可能伪装成技术文档、代码示例或设计稿。

第三步:预览面板执行恶意代码。 用户在Claude Code桌面版中打开文件进行预览时,面板未能正确隔离HTML中的脚本执行环境,导致恶意代码得以运行。

第四步:读取并外传凭证。 恶意脚本读取本地的SSH密钥文件和云服务凭证配置文件,然后将这些数据发送到攻击者控制的服务器。

这个链路中最危险的地方在于:用户全程不需要点击任何“授权”按钮,仅仅是预览文件这个动作就足以触发漏洞。

为什么是256KB这个阈值? 在Electron和类似框架中,文件大小阈值往往与内存缓冲策略有关。当HTML文件较小时,渲染进程可能使用内存中的data:URL或Blob对象加载,此时同源策略较为严格。但当文件超过某个大小(如256KB),系统可能改用临时文件或file://协议加载以节省内存,而file://协议下的脚本往往拥有更宽松的本地文件访问权限。攻击者正是利用了这种加载机制切换导致的权限提升,构造恰好超过阈值的文件来触发不安全路径。类似的基于文件大小的绕过手法在浏览器安全研究中并不罕见。

修复版本与升级建议

好消息是,该漏洞已在Claude Desktop 1.30096.1版本中修复。如果你正在使用Claude Code桌面版,建议立即检查并升级到该版本或更高版本。

升级方式通常有两种:一是通过应用内的自动更新机制(如果已开启);二是前往Anthropic官方渠道下载最新安装包进行手动覆盖安装。对于企业环境,建议管理员通过集中管理工具强制推送更新,确保所有开发者的客户端都处于安全版本。

如果你无法立即升级,一个临时的缓解措施是:避免在Claude Code桌面版中预览来源不明的HTML文件,尤其是体积超过256KB的文件。但这只是权宜之计,不应替代正式升级。

已受影响用户该做什么

如果你在修复版本发布前曾经打开过可疑HTML文件,或者不确定自己是否中招,以下步骤可以帮助你评估和降低损失:

轮换所有凭证。 立即更换SSH密钥对,并在所有主流云平台上轮换访问密钥。不要只换其中一项——攻击者可能已经获取了多个凭证文件。

检查异常访问。 审查云平台的访问日志,查找来自陌生IP或异常时间段的API调用。SSH方面,检查~/.ssh/authorized_keys是否被添加了未知公钥。

审计本地文件访问记录。 在macOS上可以通过fs_usage或第三方EDR工具回溯文件访问行为;Linux用户可检查auditd日志。这有助于确认敏感文件是否被读取过。

通知安全团队。 如果是企业环境下的开发机器,及时告知安全团队,以便他们评估横向移动风险并采取隔离措施。

为什么必须轮换而非仅删除凭证? 一旦凭证文件被读取并外传,攻击者可能已经将其复制到多处。单纯删除本地文件或修改密码并不足够,因为SSH密钥对和云平台Access Key一旦泄露,攻击者可以在任何地方使用。正确的做法是:先在云平台IAM中禁用旧密钥,创建新密钥对,再更新所有依赖该凭证的服务和CI/CD流水线。SSH方面,应生成新的密钥对,将新公钥部署到目标服务器,并从authorized_keys中移除旧公钥,同时检查known_hosts是否有异常条目。

EDR与auditd是什么? EDR(Endpoint Detection and Response,端点检测与响应)是一类企业级终端安全软件,能够记录进程行为、文件访问和网络连接,用于事后取证。Linux的auditd是内核级审计框架,可通过auditctl规则监控特定文件(如~/.ssh/id_rsa)的读取操作。配置auditctl -w ~/.ssh/id_rsa -p r -k ssh_key_read后,任何读取该文件的尝试都会记录到/var/log/audit/audit.log,便于确认凭证是否曾被恶意进程访问。

对开发者工具安全的启示

SneakPeek漏洞暴露了AI编程工具在快速迭代中容易忽视的安全盲区。Claude Code桌面版作为一个相对较新的产品,其预览面板功能在设计时可能优先考虑了开发体验,而对本地文件访问的权限边界考虑不足。

这类漏洞并非孤例。随着越来越多的AI编程助手集成文件预览、代码执行和终端访问能力,攻击面正在快速扩大。开发者需要意识到:一个看似无害的“预览”功能,背后可能拥有读取整个本地文件系统的权限。

对于工具厂商而言,沙箱隔离应该成为预览类功能的基本要求。HTML预览尤其危险,因为它天然支持脚本执行。将预览环境与主进程隔离、限制文件系统访问范围、对超过特定大小的文件采取更严格的策略,都是应该默认开启的防护措施。

对开发者个人来说,养成“最小权限”习惯很重要:不要在开发机上存放不必要的长期凭证,定期轮换密钥,对来源不明的文件保持警惕。安全工具本身也需要被安全地使用。

#Claude Code#SneakPeek漏洞#Claude Desktop#SSH密钥窃取#云凭证安全#AI编程工具安全#CVSS 8.7
分享:

相关推荐