首页 网络安全 正文
  • 本文约1283字,阅读需6分钟
  • 166
  • 0

OpenCode远程代码执行漏洞CVE-2026-22812

摘要

栋科技漏洞库关注到 OpenCode 受影响版本中存在的远程代码执行漏洞,现已追踪为CVE-2026-22812,漏洞的CVSS 3.X评分为8.8。

OpenCode 是一款MIT协议开源的AI编程代理(AI Coding Agent),核心是在终端/IDE/桌面无缝提供模型无关、隐私优先的编码辅助。

一、基本情况

OpenCode代理工具支持在终端、IDE或桌面应用中使用。可替代 Claude Code 等商业工具,适合全栈、运维/DevOps 及隐私敏感团队。

OpenCode远程代码执行漏洞CVE-2026-22812

OpenCode坚持隐私优先原则,代码与上下文仅在本地处理,不向云端上传,适配金融、医疗等场景opencode.ai,并可加载全局技能库。

栋科技漏洞库关注到 OpenCode 受影响版本中存在的远程代码执行漏洞,现已追踪为CVE-2026-22812,漏洞的CVSS 3.X评分为8.8。

二、漏洞分析

CVE-2026-22812是OpenCode受影响版本的漏洞,当OpenCode启动时会生成一个没有身份验证的HTTP服务器(默认端口4096+)。

具体来说,该漏洞存在于 OpenCode 在1.0.216之前的版本中,当OpenCode在启动时,会默认启动一个未经身份验证的HTTP服务器。

允许未经授权的远程攻击者或任何本地进程(或通过宽松的跨域资源共享策略(CORS)访问的任何网站)以用户权限执行任意shell命令。

暴露的关键端点:

POST /session/:id/shell - 执行shell命令(server.ts:1401)

POST /pty - 创建交互式终端会话 (server.ts:267)

GET /file/content?path= - 读取任意文件 (server.ts:1868)

服务器是通过`Server.listen()`在`cli/cmd/tui/worker.ts:36`中自动启动的。

server/server.ts 中不存在身份验证中间件。

服务器使用宽松的跨域资源共享(CORS)(.use(cors())),默认的 Access-Control-Allow-Origin 为 *,从而允许基于浏览器的利用。

三、POC概念验证

1、本地开采:

管理员已设置登录后刷新可查看

2、基于浏览器的利用:

恶意网站可以利用运行OpenCode的访问者进行攻击。已确认在Firefox中有效。可根据要求提供概念验证(PoC)。

管理员已设置登录后刷新可查看

注意:Chrome 142+版本可能会提示获取本地网络访问权限。而Firefox则不会。

3、潜在风险

通过两个途径实现远程代码执行:

本地进程:

任何恶意的npm包、脚本或被攻破的应用程序都可以以运行OpenCode的用户的身份执行命令。

基于浏览器(已在Firefox中确认):

任何网站都可以对运行OpenCode的访问者执行命令。这使得通过恶意广告、被攻破的网站或钓鱼页面进行“驱动式”攻击成为可能。

使用--mdns标志时,服务器会绑定到0.0.0.0并通过Bonjour进行广告,从而将攻击面扩展到整个本地网络。

代码分析、CVSS评分和文档由Claude AI(Opus 4.5)辅助完成。漏洞验证和PoC测试由报告者执行。

四、影响范围

Opencode < 1.0.216

五、修复建议

Opencode >= 1.0.216

六、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接