kikechans/-Educational-PoC-CVE-2026-23520
GitHub: kikechans/-Educational-PoC-CVE-2026-23520
针对 MCP Connect 端点命令注入漏洞(CVE-2026-23520)的教育性 PoC,支持虚拟主机路由绕过反向代理定位脆弱组件。
Stars: 0 | Forks: 0
# CVE-2026-23520:Model Context Protocol (MCP) Connect RCE - 教育用途 PoC - Arcane
**免责声明:本仓库及其包含的脚本仅供教育和学术目的使用。**
此处提供的信息旨在帮助安全研究人员、系统管理员和学生了解在受控实验室环境(例如 Capture The Flag 平台)中命令注入漏洞和虚拟主机路由的机制。
**在未经所有者明确书面许可的情况下,严禁将此工具用于任何系统、网络或基础设施。** 作者对因滥用此软件造成的任何误用或损坏不承担任何责任。
## 背景与漏洞概述
本仓库提供了一个利用 **CVE-2026-23520** 的概念验证(PoC),其背景是某些应用栈(例如 Arcane v1.13.0)中 **Model Context Protocol (MCP)** 的实现。
### 漏洞缺陷
该漏洞是一个经典的命令注入缺陷。API endpoint (`/api/mcp/connect`) 接收一个 JSON payload 来配置新的服务器连接。该 payload 包含一个 `serverConfig` 对象,其中带有 `command` 和 `args` 字段。
由于应用程序在宿主操作系统上执行这些字段之前未能正确对其进行清理,攻击者可以提供恶意的 bash 命令(例如 reverse shell)来代替合法的服务路径。
### 关键点(虚拟主机路由)
在许多实际或 CTF 部署中,仅仅将 exploit 发送到主 IP 地址会导致 `404 Not Found` 错误。这是因为易受攻击的组件(例如 `MCPJam Inspector`)托管在反向代理(如 Nginx)之后,该代理会根据 `Host` 头路由流量。
此 PoC 与标准 exploit 的不同之处在于,它明确允许用户指定 **Virtual Host (vhost)**,以绕过代理路由规则并直接访问易受攻击的应用程序。
## 用法
此脚本需要 Python 3 和 `requests` 库。
```
pip install requests
```
### 语法
```
python3 exploit_vhost.py
```
### 示例(CTF 环境)
1. 在您的机器上设置一个 netcat 监听器:
```
nc -lvnp 4444
```
2. 运行 exploit,指定隐藏的虚拟主机:
```
python3 exploit_vhost.py 10.129.x.x 443 mcp.target.local 10.10.x.x 4444
```
*注意:出现“Read timed out”错误是预期之中的,这表明 reverse shell 已成功执行并正在保持连接打开。*
## 缓解措施
管理员应确保其运行的是该软件的最新修补版本。如果无法立即进行修补,请限制对 `/api/mcp/connect` endpoint 的访问,并确保对所有 `serverConfig` 参数应用严格的输入验证。
标签:PoC, Python, 安全, 无后门, 暴力破解, 超时处理, 逆向工具