☰
一个网页就能黑掉你的电脑:OpenCode 曝远程代码执行漏洞 GHSA-632h-h47v-g4x4,开发者需立即升级
2026/9/30 16:55:05 网站建设 项目流程

一个网页,就能在你的电脑上执行任意命令——这不是恐吓,而是刚刚被公开的 OpenCode 远程代码执行漏洞 GHSA-632h-h47v-g4x4 的真实攻击效果。对每天依赖 AI 编程工具的开发者来说,这条消息值得立刻放下手里的活去检查自己的环境。

OpenCode 是 Anomaly 公司推出的开源 AI 编码代理,2025 年 6 月上线后迅速走红,官网数据显示其 GitHub 星标已超过 20.8 万,月活跃开发者约 1600 万。体量越大,安全问题波及的范围就越广。Datadog Security Labs 披露的研究表明,只要开发者的电脑上运行着 OpenCode 的 Web 服务,攻击者仅靠一个精心构造的恶意网页,就能在受害者机器上运行命令,全程不需要任何网络渗透技巧。

问题的根源藏在升级接口里。OpenCode 的浏览器界面通过 opencode serve 或 opencode web 启动后,默认无需身份验证便监听在 127.0.0.1:4096 上。它的 /global/upgrade 端点本意是接收版本号、执行类似 npm install -g opencode-ai@版本号 的升级命令。但很多人忽略了一点:npm 的包规范除了接受语义化版本号,同样接受一个指向远程 tar 压缩包的 URL。攻击者只要把带恶意 preinstall 生命周期脚本的压缩包地址填进升级目标,包管理器就会自动下载并执行其中的脚本,命令随即以 OpenCode 进程的权限运行。

到这里似乎还隔着一道墙:服务绑定在本地回环地址上,远程攻击者根本连不上。这正是整个攻击链中最精妙的一环。研究员发现,恶意网页可以借受害者的浏览器发起对本地 API 的跨源请求。直接用 JavaScript 的 fetch() 发送 application/json 请求会触发 CORS 预检并被拦下,于是攻击者改走 HTML 表单的顶级导航提交——这一路径天生不受 CORS 和本地网络访问保护机制约束。更关键的是,OpenCode 的原始请求处理程序不检查声明的 Content-Type,一律把请求体当 JSON 解析。攻击者利用 enctype="text/plain" 的特性,篡改表单隐藏字段的名称和值,让浏览器拼接出一段合法 JSON,把升级端点指向自己托管的恶意包。整个利用过程对用户的唯一要求,就是在 OpenCode 服务运行期间访问了那个网页。

受影响的范围并不小。通过 npm、pnpm 或 Bun 安装的 OpenCode 1.14.30 至 1.18.21 版本均存在漏洞,而公开 npm 数据显示,仅在 2026 年 9 月 17 日至 23 日这一周,这 82 个受影响版本的下载量就超过 64.7 万次,占同期 OpenCode 总下载量的 38.9%。值得留意的是,Anomaly 主动选择不为该漏洞申请 CVE 编号,理由是避免低质量报告泛滥,因此安全团队检索时需要使用 GitHub 安全公告编号 GHSA-632h-h47v-g4x4,否则漏洞情报很容易被漏掉。

时间线梳理下来颇为紧凑:有问题的代码路径于 2026 年 4 月 29 日合入,1.14.30 在次日成为首个受影响版本;Datadog 于 8 月 11 日发现并通过 GitHub Security Advisories 私下上报;Anomaly 在同月 24 日完成修复并发布 1.18.22,随后应其要求延迟一个月才公开细节。修复采用了纵深防御策略:一方面把升级目标严格校验为合法语义化版本,从根上堵死任意包 URL;另一方面用内容感知的处理程序替换了原来的原始处理逻辑,text/plain 的提交会被直接拒绝——在 1.18.22 上重放攻击载荷,服务器返回的是 HTTP 415 不支持的媒体类型。

如果你正在使用 OpenCode,现在就该做这几件事:尽快升级到 1.18.22 或更高版本,重启所有正在运行的 OpenCode 进程,并用 ls -l "$(command -v opencode)" 确认自己的安装方式是否属于 npm、pnpm 或 Bun 渠道。启用 Web 界面时务必设置 OPENCODE_SERVER_PASSWORD,并且不要把服务暴露到 localhost 之外。日常使用中如果发现异常的包管理器活动、来历不明的生命周期脚本执行或可疑的出站下载,都应视为潜在入侵迹象。需要特别提醒的是,密码保护只能降低风险,不能替代打补丁——浏览器缓存的基本认证凭据仍可能随恶意请求一并发出。

AI 编程工具正在变成开发者的第二双手,而它们的权限往往等同于使用者本人。这次 OpenCode 漏洞暴露的,是本地 AI 服务与浏览器安全边界之间一块长期被忽视的灰色地带。当工具越来越聪明,给它上锁的动作,必须和装它的速度一样快。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询