arcade-mcp-server 存在硬编码默认工作密钥,允许完全未授权访问所有HTTP MCP工作端点 · CVE-2025-66454 · GitHub Advisory Database
漏洞详情
包管理器: pip
包名: arcade-mcp-server (pip)
受影响版本: < 1.9.1
已修复版本: 1.9.1
描述
概述 arcade-mcp HTTP服务器使用了一个硬编码的默认工作密钥(“dev”),该密钥在正常服务器启动过程中从未被验证或覆盖。因此,任何知道此默认密钥的未认证攻击者都可以伪造有效的JWT,并完全绕过FastAPI认证层。这赋予了远程访问所有工作端点的权限——包括工具枚举和工具调用——而无需任何凭证。
任何遵循官方快速入门指南的用户都会受到影响,除非他们手动覆盖 ARCADE_WORKER_SECRET。
详情
启动HTTP MCP服务器的文档化方法(python server.py http)隐式地将工作密钥设置为硬编码的默认值 “dev”:
ArcadeSettings.server_secret默认为 “dev” (libs/arcade-mcp-server/arcade_mcp_server/settings.py:129–158)create_arcade_mcp()将此值直接传递给FastAPIWorker而不进行验证 (libs/arcade-mcp-server/arcade_mcp_server/worker.py:118–188)BaseWorker._set_secret()接受此值且不强制要求轮换 (libs/arcade-serve/arcade_serve/core/base.py:42–83)
由于工作节点的签名密钥是固定且公开文档化的,攻击者可以轻松生成有效的HS256 JWT令牌:
- FastAPI工作节点认证中间件 (
arcade_serve/fastapi/auth.py) 信任任何使用工作密钥签名的JWT。 - 核心认证层 (
arcade_serve/core/auth.py) 无法区分伪造的令牌和合法的令牌。
因此,按照文档化工作流程部署的服务器,将所有 /worker/* 端点暴露给了任何能够使用已知密钥生成简单HS256令牌的攻击者。
此CVE已通过 ArcadeAI/arcade-mcp#691 修复。
概念验证 (PoC)
- 使用官方指南启动服务器:https://docs.arcade.dev/en/home/build-tools/create-a-mcp-server
- 验证未授权访问被拒绝(预期结果):
1 2curl -s -D - http://127.0.0.1:8000/worker/tools # → 403 Forbidden - 使用硬编码的默认密钥 “dev” 伪造有效的HS256令牌:
1 2import jwt print(jwt.encode({'ver': '1', 'aud': 'worker'}, 'dev', algorithm='HS256')) - 使用伪造的令牌绕过认证:
结果:服务器以200 OK响应,并返回完整的工具目录,允许调用所有工作工具。 服务器日志:显示一个被拒绝的请求,紧接着是一个成功的伪造请求,确认了绕过行为。
1 2 3curl -s -D - \ -H "Authorization: Bearer $(cat /tmp/forged_token.txt)" \ http://127.0.0.1:8000/worker/tools
影响 这是一个认证绕过漏洞,导致对所有MCP工作端点的完全远程访问:
- 未经授权的攻击者可以枚举工具
- 远程调用任意工具
- 访问工具返回的任何数据(包括加载到
ToolContext中的密钥) - 如果工具暴露了操作功能,则可在内部系统中执行操作
- 由于默认签名密钥已知,攻击者无需任何暴力破解或猜测即可执行这些操作
任何遵循官方设置指南的用户都会暴露在此风险中,除非他们手动覆盖 ARCADE_WORKER_SECRET(这一点未被记录)。此漏洞实际上将MCP工作节点API的完全远程控制权交给了任何知晓默认密钥的攻击者。
参考
- GHSA-g2jx-37x6-6438
- ArcadeAI/arcade-mcp#691
- ArcadeAI/arcade-mcp@44660d1
- ArcadeAI/arcade-mcp@7fb097f
- https://nvd.nist.gov/vuln/detail/CVE-2025-66454
严重程度
中危 CVSS总体评分: 6.5/10 CVSS v3 基础指标: AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N EPSS评分: 0.154% (第37百分位)
弱点
- CWE-284: 不当的访问控制 该产品未限制或错误地限制了未经授权的参与者对资源的访问。
- CWE-321: 使用硬编码的加密密钥 使用硬编码的加密密钥会显著增加加密数据被恢复的可能性。
标识符
- CVE ID: CVE-2025-66454
- GHSA ID: GHSA-g2jx-37x6-6438
- 源代码: ArcadeAI/arcade-mcp
致谢
报告者:qi-scape