Why this conclusion was reached
2/4 dimensions flagged Block Declared vs actual capability 1 undeclared or violating capabilities were inferred.
Review Hidden execution and egress 7 lower-risk artifacts were extracted and still need context.
Block Attack chain and severe findings The report includes 5 attack-chain steps and 2 severe findings.
Review Dependencies and supply chain hygiene 1 dependency or supply-chain issues need attention.
Attack Chain
01 用户安装 moltspay-skill,触发 postinstall 钩子 Entry · package.json:9
02 npm install -g moltspay(无版本锁定)拉取外部包,npm 包可执行任意 node 脚本 Escalation · scripts/setup.js:26
03 moltspay init 生成钱包写入 ~/.moltspay/wallet.json,私钥材料暴露于磁盘 Escalation · scripts/setup.sh:16
04 moltspay CLI 运行时向外部服务发送请求(域名 juai8.com/moltspay.com),网络行为和密钥传输无法审计 Impact · scripts/setup.js:42
05 若 moltspay npm 包被恶意替换或域名被劫持,可窃取钱包私钥并转移用户加密资产 Impact · node_modules/moltspay (外部包)
What drove the risk score up
外部 npm 包黑盒依赖 +35
核心功能完全在 moltspay npm 包中,代码未包含源码,无法审计其网络行为、密钥处理和支付逻辑
npm install 无版本锁定 +15
npm install -g moltspay 始终拉取 latest,可被依赖劫持攻击(dependency confusion)或包所有者替换恶意版本
wallet 私钥存储于磁盘 +5
~/.moltspay/wallet.json 存储私钥明文,无加密保护
Most important evidence
High Supply Chain
外部 npm 包(moltspay)源码不可审计
技能脚本仅执行 npm install -g moltspay,所有核心功能(钱包生成、支付发现、服务购买)均运行在外部 moltspay 包中。该包未以源码形式包含在技能内,无法验证其网络通信目标、密钥存储方式或是否有数据外泄行为。
scripts/setup.js:26 要求 moltspay 包提供源码链接,或使用本地可审计的 CLI 二进制替代 npm 安装方式
High Supply Chain
npm install 无版本锁定 — 依赖劫持风险
setup.sh 和 setup.js 中均使用 npm install -g moltspay 无 @version 限定,每次执行拉取最新版本。攻击者可发布恶意版本至 npm,或通过命名混淆(dependency confusion)使安装指向攻击者控制的包。
scripts/setup.sh:10 Medium Credential Theft
钱包私钥以明文写入磁盘
moltspay init 生成的 wallet.json 包含 EVM 私钥和 Solana Ed25519 私钥,明文存储于 ~/.moltspay/wallet.json。若文件系统权限配置不当或被恶意进程读取,可导致加密资产被盗。
scripts/setup.sh:16 钱包文件应支持加密存储(如使用用户密码加密),并在 skill-card.md 中明确警告用户不要在共享环境中使用
Medium Doc Mismatch
声明能力 vs 实际能力不匹配 — 核心逻辑不可见
SKILL.md 详细描述了钱包创建、支付、余额查询等功能,但这些功能的实际代码运行在外部 moltspay npm 包中。用户/管理员无法通过审查技能源码验证声明行为的真实性。
SKILL.md:1 提供 moltspay 包源码仓库链接,或将 CLI 工具直接打包入技能内,使审计成为可能
Low Sensitive Access
hardcoded 域名指向外部服务
技能 hardcoded 指向 juai8.com/zen7 和 moltspay.com,服务端行为不受技能控制,存在域名被劫持或服务提供方恶意行为的风险。
SKILL.md:72 在 skill-card.md 中明确告知用户这些外部服务 URL 不受本技能保护
Declared capability vs actual capability
Filesystem Pass
Declared WRITE
→ Inferred WRITE
scripts/setup.js:40 写入 ~/.moltspay/wallet.json Shell Pass
Declared WRITE
→ Inferred WRITE
scripts/setup.js:26 执行 npm install -g moltspay Environment Pass
Declared NONE
→ Inferred NONE
未访问环境变量 Network Block
Declared NONE
→ Inferred READ/WRITE
moltspay npm 包运行时可能存在网络通信,但代码中未声明
Suspicious artifacts and egress
Medium External URL
https://juai8.com/zen7 README.md:51
Medium External URL
https://moltspay.com README.md:58
Medium External URL
https://moltspay.com/docs README.md:78
Medium External URL
https://moltspay.com/services README.md:79
Medium External URL
https://discord.gg/QwCJgVBxVK README.md:80
Medium External URL
https://clawhub.ai/user/yaqing2023 skill-card.md:7
Medium External URL
https://clawhub.ai/yaqing2023/moltspay-skill skill-card.md:29
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
| moltspay | * | npm | No | 无版本锁定;黑盒外部包,源码不可审计,核心功能(钱包/支付)全部运行于此包 |
File composition
9 files · 558 lines Markdown 3 files · 365 linesShell 3 files · 86 linesJavaScript 1 files · 66 linesJSON 2 files · 41 lines
Files of concern · 5
SKILL.md Markdown · 237 lines
声明能力 vs 实际能力不匹配 — 核心逻辑不可见 · hardcoded 域名指向外部服务
README.md Markdown · 84 lines
https://juai8.com/zen7 · https://moltspay.com · https://moltspay.com/docs · https://moltspay.com/services · https://discord.gg/QwCJgVBxVK
skill-card.md Markdown · 44 lines
https://clawhub.ai/user/yaqing2023 · https://clawhub.ai/yaqing2023/moltspay-skill
scripts/setup.js JavaScript · 66 lines
外部 npm 包(moltspay)源码不可审计
scripts/setup.sh Shell · 42 lines
npm install 无版本锁定 — 依赖劫持风险 · 钱包私钥以明文写入磁盘
Other files · package.json · ensure-wallet.sh · pay-zen7-video.sh · _meta.json
9 files · 17.6 KB · 558 lines
Markdown 3f · 365LShell 3f · 86LJavaScript 1f · 66LJSON 2f · 41L
├─
▾
📁
scripts
│ ├─
🔧
ensure-wallet.sh
Shell
24L · 643 B
│ ├─
🔧
pay-zen7-video.sh
Shell
20L · 539 B
│ ├─
📜
setup.js
JavaScript
66L · 2.1 KB
│ └─
🔧
setup.sh
Shell
42L · 1.3 KB
├─
📝
README.md
Markdown
84L · 2.6 KB
├─
📝
SKILL.md
Markdown
237L · 7.3 KB
├─
📋
_meta.json
JSON
5L · 133 B
├─
📋
package.json
JSON
36L · 788 B
└─
📝
skill-card.md
Markdown
44L · 2.3 KB
Security positives
skill-card.md 明确披露了钱包存储、Spending limits、CLI 全局安装等已知风险,并提供缓解措施
内置 Spending limits($2/tx, $10/day)降低资金损失风险
脚本代码结构清晰,无混淆、无 base64 编码执行
未发现环境变量遍历、~/.ssh、~/.aws 等敏感路径访问
未发现隐藏的 HTML 注释指令或提示词注入
README.md 与 SKILL.md 内容一致,无明显文档欺骗