stocktoday-mcp
自定义后端 `https://tushare.citydata.club/` 替代官方 Tushare API,所有 API 调用(包含 token)均发往该未知第三方服务器,构成数据外传风险;无版本锁定的 npm 依赖存在供应链风险。
为什么得出这个结论
2/4 个维度触发发现 2 项声明之外的能力或越权行为。
提取到 108 个一般风险产物,需要结合上下文判断。
报告包含 3 步攻击链,另有 0 项高危或严重发现。
发现 3 项需要关注的依赖或供应链线索。
攻击链
初始入口 · SKILL.md:29
权限提升 · src/index.ts:201
最终危害 · src/index.ts:13
风险分是怎么被拉高的
所有 API 调用(含 token 和查询参数)均 POST 到自定义后端 tushare.citydata.club,而非官方 Tushare
axios ^1.6.0 无版本锁定,pip 中无风险
读取 STOCKTODAY_TOKEN/TUSHARE_TOKEN,属于声明范围内的正常凭证使用
后端运营方和隐私政策未知,SKILL.md 明确标注但意图不明确
最关键的证据
凭证及查询数据发往未知第三方服务器
代码将 STOCKTODAY_TOKEN 和用户查询参数以 POST application/x-www-form-urlencoded 形式发送到 https://tushare.citydata.club/,而非 Tushare 官方 API。所有请求参数(含股票代码、日期范围等)均被暴露给该自定义后端,SKILL.md 仅以'使用自定义后端服务'一笔带过,未说明后端运营方、数据留存政策及合规性。
src/index.ts:13 axios 无版本锁定存在依赖供应链风险
package.json 中 axios 依赖声明为 ^1.6.0,允许自动升级到 1.x 最新版。axios 曾有 SSRF 和 CRLF 注入等历史漏洞(CVE-2019-10742 等),无版本锁定意味着自动引入含有漏洞的新版本。
package.json:11 文档未声明 network:WRITE 权限
SKILL.md 未声明该 skill 需要向外部服务器发送 HTTP 请求的能力,仅说明'调用 Tushare API'。代码实际通过 fetch 主动 POST 数据到第三方,权限声明不完整。
SKILL.md:1 @modelcontextprotocol/sdk 依赖官方库但无版本锁定
MCP SDK 声明为 ^1.0.0,虽为官方包但同样无版本锁定,存在供应链风险。
package.json:10 声明能力 vs 实际能力
src/index.ts:6,BASE_URL外部API调用 src/index.ts:5,process.env读取token 无直接文件系统操作 可疑产物与外联
https://tushare.citydata.club/ SKILL.md:38
https://registry.npmmirror.com/@hono/node-server/-/node-server-1.19.11.tgz package-lock.json:22
https://registry.npmmirror.com/@modelcontextprotocol/sdk/-/sdk-1.27.1.tgz package-lock.json:34
https://registry.npmmirror.com/@types/node/-/node-20.19.37.tgz package-lock.json:74
https://registry.npmmirror.com/accepts/-/accepts-2.0.0.tgz package-lock.json:84
https://registry.npmmirror.com/ajv/-/ajv-8.18.0.tgz package-lock.json:97
https://registry.npmmirror.com/ajv-formats/-/ajv-formats-3.0.1.tgz package-lock.json:113
https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz package-lock.json:130
https://registry.npmmirror.com/axios/-/axios-1.13.6.tgz package-lock.json:136
https://registry.npmmirror.com/body-parser/-/body-parser-2.2.2.tgz package-lock.json:147
https://opencollective.com/express package-lock.json:166
https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz package-lock.json:171
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| @modelcontextprotocol/sdk | ^1.0.0 | npm | 否 | 无版本锁定 |
| axios | ^1.6.0 | npm | 否 | 无版本锁定;历史CVE需关注 |
| typescript | ^5.0.0 | npm | 否 | devDependencies 无版本锁定 |
文件构成
package-lock.json src/index.ts SKILL.md package.json