安全决策报告

pm-master

PM Master Agent 将所有项目需求、架构文档、计划等内容通过硬编码凭证传输至第三方远程 MCP 服务,凭证嵌入配置文件并随分发包传播,构成敏感数据外传与凭证泄露双重风险。

安装决策优先 来源: ClawHub 扫描时间: 2026/6/21
文件 5
IOC 3
越权项 1
发现 4
最直接的威胁证据
01
用户安装 pm-master 技能,分发包携带 config.json 中的 Bearer token 初始入口 · mcp-proxy/config.json
02
恶意获取技能包者直接提取 config.json 中的凭证,访问远程 MCP 服务 最终危害 · mcp-proxy/config.json
03
项目需求文档、架构文档通过 HTTP POST 发送至第三方服务器 mcp.smartmoves.com.cn 最终危害 · mcp-proxy/call_tool.sh

为什么得出这个结论

2/4 个维度触发
阻止
声明与实际能力

发现 1 项声明之外的能力或越权行为。

复核
隐藏执行与外联

提取到 3 个一般风险产物,需要结合上下文判断。

阻止
攻击链与高危发现

报告包含 3 步攻击链,另有 2 项高危或严重发现。

复核
依赖与供应链卫生

没有完整依赖信息,供应链判断需要保留弹性。

攻击链

01
用户安装 pm-master 技能,分发包携带 config.json 中的 Bearer token

初始入口 · mcp-proxy/config.json:2

02
恶意获取技能包者直接提取 config.json 中的凭证,访问远程 MCP 服务

最终危害 · mcp-proxy/config.json:2

03
项目需求文档、架构文档通过 HTTP POST 发送至第三方服务器 mcp.smartmoves.com.cn

最终危害 · mcp-proxy/call_tool.sh:88

风险分是怎么被拉高的

硬编码凭证嵌入分发包 +20

Bearer token sk-Wp9mTx4KvRn7Qd3Fzj 写入 config.json,随技能分发包传播,旋转令牌无法修复已泄露状态

第三方数据外传 +20

所有项目需求文档、架构设计、计划内容经 HTTP POST 发送至 mcp.smartmoves.com.cn,无端到端加密或数据处理协议声明

未声明网络访问 +10

SKILL.md 未在 allowed-tools 中声明 network 权限,但 call_tool.sh 实际执行 HTTP 请求

最关键的证据

高危 凭证窃取

Bearer 令牌硬编码于配置文件中随分发包传播

MCP 服务认证令牌 sk-Wp9mTx4KvRn7Qd3Fzj 存储于 mcp-proxy/config.json,随技能安装包分发至所有用户。任何获取该技能包的主体均可直接提取并使用此凭证访问远程 MCP 服务。令牌一旦泄露,旋转无法修复已传播副本。

mcp-proxy/config.json:2
移除硬编码凭证,改用环境变量注入(如 MCP_API_KEY),并在发布流程中记录凭证轮换机制。
高危 数据外泄

项目机密文档通过 HTTP POST 发送至第三方服务器

用户提供的需求规格说明书、系统架构设计说明书等机密项目文档作为 message 参数经 HTTP POST 发送至 https://mcp.smartmoves.com.cn/pm/mcp。SKILL.md 未声明此数据流向,数据处理协议不透明,用户缺乏知情同意。

mcp-proxy/call_tool.sh:88
在 SKILL.md 明确声明数据流向,提供数据处理协议链接;如涉及机密项目数据,建议使用自托管 MCP 服务或本地模型。
中危 文档欺骗

未声明网络操作能力

SKILL.md 未在任何权限声明区块提及 network 权限(allowed-tools 映射),但 call_tool.sh 实际执行向外部域 mcp.smartmoves.com.cn 的 HTTP POST 请求,形成声明-行为差异。

mcp-proxy/call_tool.sh:88
在 SKILL.md 的 allowed-tools 声明区块补充 network:WRITE,说明远程 MCP 服务调用的存在和必要性。
中危 供应链

远程服务无版本锁定且无 SLA 保障

技能依赖的远程 MCP 服务端点 https://mcp.smartmoves.com.cn/pm/mcp 无版本声明,服务可用性、稳定性、数据安全策略均不透明。用户对该服务无任何运维可见性。

mcp-proxy/config.json:1
明确 MCP 服务版本要求,提供服务可用性 SLA,并在技能不可用时提供降级方案。

声明能力 vs 实际能力

网络访问 阻止
声明 NONE
推断 WRITE
mcp-proxy/call_tool.sh:88 — curl POST 到远程 MCP 服务但未在 SKILL.md 声明
文件系统 通过
声明 NONE
推断 READ
SKILL.md 未声明但 MCP 服务端可能读取 workspace/ 目录下的需求文档和架构文档

可疑产物与外联

中危 外部 URL
https://mcp.smartmoves.com.cn/pm/mcp

SKILL.md:92

中危 外部 URL
https://clawhub.ai/user/leo21cn

skill-card.md:7

中危 外部 URL
https://clawhub.ai/leo21cn/pm-master

skill-card.md:29

依赖与供应链

没有结构化依赖告警。

文件构成

5 个文件 · 376 行
Markdown 2 个文件 · 190 行Shell 1 个文件 · 180 行JSON 2 个文件 · 6 行
需关注文件 · 4
mcp-proxy/config.json JSON · 1 行
Bearer 令牌硬编码于配置文件中随分发包传播 · 远程服务无版本锁定且无 SLA 保障
SKILL.md Markdown · 148 行
https://mcp.smartmoves.com.cn/pm/mcp
mcp-proxy/call_tool.sh Shell · 180 行
项目机密文档通过 HTTP POST 发送至第三方服务器 · 未声明网络操作能力
skill-card.md Markdown · 42 行
https://clawhub.ai/user/leo21cn · https://clawhub.ai/leo21cn/pm-master
其他文件 · _meta.json

安全亮点

skill-card.md 主动披露了 Bearer token 嵌入风险和第三方数据路由风险,知行基本一致
call_tool.sh 使用标准 JSON-RPC 协议,请求构造有转义处理
SKILL.md 明确说明所有产出为草稿需人工 PM 审阅,减轻了错误决策风险
shell 脚本有 set -euo pipefail 和超时保护(300s)