playb0t/mcp-remote-oauth-security
GitHub: playb0t/mcp-remote-oauth-security
针对 geelen/mcp-remote 0.1.16–0.1.38 的 OAuth 信任边界安全披露项目,记录了七个漏洞公告及其验证证据。
Stars: 0 | Forks: 0
mcp-remote OAuth 信任边界漏洞
针对 geelen/mcp-remote
版本 0.1.16 至 0.1.38 的协调安全披露。
```
REMOTE METADATA IS NOT PASSIVE DATA.
Every URL, redirect, origin, and credential handoff is a trust decision.
```
## 摘要
`mcp-remote` 将仅支持 stdio 的 MCP 客户端桥接到远程 MCP 服务器,并代表它们执行
OAuth 发现。这使得远程服务器元数据成为一个安全
边界:客户端绝不能仅仅因为这些 URL、重定向或
凭证目标出现在 OAuth 发现过程中,就将它们视为受信任的。
早期的 [CVE-2025-6514](https://nvd.nist.gov/vuln/detail/CVE-2025-6514)
在 `0.1.16` 版本中修复了浏览器启动路径中的命令注入。
我们的审查发现,在 `0.1.16` 到当前版本 `0.1.38` 中,相关的 OAuth 发现和凭证处理路径
仍然存在暴露风险。
主要的漏洞链如下:
```
flowchart LR
A["Attacker-controlled MCP server"] --> B["401 + WWW-Authenticate"]
B --> C["Server-selected resource metadata URL"]
C --> D["Authorization-server metadata discovery"]
D --> E["Automatic redirects / browser launch / SSE transport"]
E --> F["Internal network requests or credential-boundary failure"]
```
有两项发现通过仅限 localhost 的金丝雀测试进行了重新验证。四项为有边界的
源码审查发现。一项为明确的条件性纵深防御发现。这些
证据类别有意未作合并。
## 公告索引
以下标识符为稳定的研究 ID。当公开的 CVE 记录可用时,相应的
CVE 标识符将被添加到对应的文件中。
| 研究 ID | 发现 | 建议 CVSS 3.1 | 证据 |
|---|---|---:|---|
| [F-01](advisories/F-01-resource-metadata-ssrf.md) | 通过未经验证的 `resource_metadata` URL 触发的 SSRF | 6.5 | 本地 PoC,已重新验证 |
| [F-02](advisories/F-02-authorization-server-ssrf.md) | 通过 `authorization_servers[]` 触发的盲 SSRF | 4.3 | 本地 PoC,已重新验证 |
| [F-04](advisories/F-04-md5-token-isolation.md) | 基于 MD5 的 OAuth token 文件隔离 | 5.9 | 源码审查 |
| [F-08](advisories/F-08-browser-url-validation.md) | 浏览器启动前不完整的内部地址验证 | 5.4 | 源码审查 |
| [F-09](advisories/F-09-cleartext-token-storage.md) | OAuth 凭证以明文形式存储 | 5.5 | 源码审查 |
| [F-10](advisories/F-10-redirect-validation-bypass.md) | 遵循重定向绕过一次性 URL 验证 | 7.5 | 源码审查 |
| [F-11](advisories/F-11-sse-token-origin-scope.md) | SSE 授权注入缺乏显式的 origin 绑定 | 5.3 | 条件性纵深防御发现 |
这些分数由研究人员提出。它们不是 CNA 或 NVD 的评分。
## 当前上游状态
- 审查版本:`0.1.38`
- 审查并重新验证的 commit:
`02619aff36e79803d7c894e8c8ae7b34b2d11f8c`
- 初始验证:2026-02-17
- 重新验证:2026-05-03
- 主分支检查:2026-07-31
- 修复版本:截至披露时尚无已知版本
- 已知在野利用:未观察到或声称
## 负责任披露摘要
初始私下公告于 2026-02-17 提交。在未收到维护者回复或新版本发布后,
这些发现于 2026-05-03 被重新验证。公开
披露发生在一段延长的协调期之后,旨在为
用户提供具体的升级、隔离和监控指南。
有关完整的时间线,请参阅 [TIMELINE.md](TIMELINE.md),有关范围、验证和局限性,请参阅
[METHODOLOGY.md](METHODOLOGY.md)。
## 仓库结构图
```
.
├── README.md Research overview and advisory index
├── METHODOLOGY.md Scope, evidence classes, and limitations
├── TIMELINE.md Coordinated-disclosure chronology
├── SECURITY.md Publication corrections and upstream routing
├── CITATION.cff Stable research citation
├── assets/ Repository visual identity
└── advisories/ One bounded technical record per finding
```
## 使用与引用
防御者、维护者和漏洞数据库可以引用本仓库中稳定的
公告 URL。在总结记录时,请保留发现 ID、受影响的
版本范围、证据类别和局限性。
机器可读的引用元数据可在 [`CITATION.cff`](CITATION.cff) 中找到。
## 研究员
由 [playb0t](https://github.com/playb0t) 发现并报告。
标签:MCP协议, Modbus, OAuth, 安全漏洞披露, 漏洞分析, 路径探测, 防御加固