This report was generated in Chinese. Some content may be in Chinese.
Suspicious — Risk Score 42/100
Last scan:2 hr ago Rescan
42 /100
moltspay_skill
Pay for AI services via MoltsPay protocol using USDC on Base chain
MoltsPay 技能声称是支付工具,但其核心操作依赖于未版本锁定的 npm 包(moltspay)的全局安装与执行,setup.js 使用 execSync 执行任意命令,存在供应链风险;SKILL.md 未声明 npm 全局安装行为和外部网络请求范围。
Skill Namemoltspay_skill
Duration61.1s
Enginepi
ClawHub MoltsPay Skill v1.0.0 by yaqing2023
📥 311
ClawHub Verdict Suspicious dangerous_execllm_suspiciousvt_suspicious
Use with caution
1. 立即在 package.json 中将 moltspay 锁定到已知可信版本;2. SKILL.md 应明确声明 'npm install -g moltspay' 这一高危操作;3. 审查 moltspay npm 包的源码和发布历史,确认为可信包;4. 考虑将安装步骤从运行时移至部署时,避免在用户环境执行未知代码。

Attack Chain 3 steps

Entry 用户安装/触发 skill,package.json postinstall 或 setup.sh/setup.js 执行 npm install -g moltspay(无版本锁定)
package.json:18
Escalation 攻击者通过 npm 包劫持(抢注/账户被盗/恶意版本)发布恶意版 moltspay,agent 运行时自动安装
scripts/setup.sh:14
Impact 恶意 moltspay 包在 init/status/pay 命令中植入代码,窃取钱包私钥、收割环境变量或建立持久化后门
scripts/setup.js:32

Findings 5 items

Severity Finding Location
High
npm 全局安装 moltspay 无版本锁定 Supply Chain
setup.sh:14、setup.js:32 和 package.json postinstall 均执行 'npm install -g moltspay',未指定版本或 hash。若 moltspay 包名被抢注、账号被盗或版本被污染,安装的代码将拥有 agent 的完整 shell 执行权限。
npm install -g moltspay
→ 将依赖锁定至特定版本(npm install -g [email protected]),并建议在安装前验证 moltspay npm 包的发布者身份和源码。
scripts/setup.sh:14
High
SKILL.md 未声明 npm 全局安装行为 Doc Mismatch
SKILL.md 列出了 moltspay CLI 命令(init/status/config/pay),但完全未提及 skill 会通过 npm 全局安装 moltspay 包这一核心前置步骤。用户阅读 SKILL.md 无法得知 skill 会执行 npm install -g。
文档描述了命令用法但未声明包的安装方式和来源
→ SKILL.md 应明确说明:本 skill 依赖 moltspay npm 包,会在首次运行时全局安装;提供包版本信息、源码仓库地址和可信度说明。
SKILL.md:1
Medium
setup.js 使用 execSync 执行外部包命令 RCE
setup.js:32 调用 execSync('moltspay init --chain base ...'),若 moltspay 包被恶意替换,攻击者可在 init 命令中注入任意代码执行。setup.sh:27 通过 jq 解析 wallet.json 也存在命令注入风险(但路径由 ${HOME} 决定,攻击面较小)。
run('moltspay init --chain base --max-per-tx 2 --max-per-day 10')
→ 使用 spawnSync 而非 execSync 避免 shell 解析;验证 moltspay 包的完整性(hash 比对)后再执行命令。
scripts/setup.js:32
Medium
未声明的 filesystem 写入 Doc Mismatch
SKILL.md 未声明本 skill 会写入 ${HOME}/.moltspay/wallet.json 文件。setup.sh:27 和 setup.js:54 会在用户主目录创建 .moltspay 目录和 wallet.json,这是高度敏感的钱包文件存储位置。
WALLET_FILE="${HOME}/.moltspay/wallet.json"
→ SKILL.md 应声明:'本 skill 会在 ~/.moltspay/ 下存储钱包配置文件'。
scripts/setup.sh:27
Low
package.json 无包版本锁定 Supply Chain
moltspay-skill 自身的依赖(devDependencies/scripts)未指定版本,增加了依赖解析的不确定性。
"setup": "node scripts/setup.js"
→ 为 scripts 依赖添加版本锁定。
package.json:16
ResourceDeclaredInferredStatusEvidence
Shell NONE WRITE ✗ Violation SKILL.md 未声明任何 shell 执行能力,但 scripts/setup.sh:14 和 scripts/setup.js:32 执行 npm ins…
Network READ READ ✓ Aligned SKILL.md 声明 GET https://moltspay.com/api/search、https://moltspay.com/api/service…
Filesystem NONE WRITE ✗ Violation SKILL.md 未声明文件系统写入,但 setup.sh:27 和 setup.js:54 写入 ${HOME}/.moltspay/wallet.json
Environment NONE READ ✗ Violation setup.js 使用 os.homedir() 获取 HOME 路径(隐式依赖环境变量),未在 SKILL.md 声明
7 findings
🔗
Medium External URL 外部 URL
https://juai8.com/zen7
README.md:29
🔗
Medium External URL 外部 URL
https://moltspay.com/docs
README.md:48
🔗
Medium External URL 外部 URL
https://moltspay.com/services
README.md:49
🔗
Medium External URL 外部 URL
https://discord.gg/QwCJgVBxVK
README.md:50
🔗
Medium External URL 外部 URL
https://moltspay.com/api/search?q=
SKILL.md:45
🔗
Medium External URL 外部 URL
https://moltspay.com/api/services
SKILL.md:46
🔗
Medium External URL 外部 URL
https://juai8.com/.well-known/agent-services.json
SKILL.md:52

File Tree

7 files · 9.9 KB · 364 lines
Markdown 2f · 175L Shell 3f · 87L JavaScript 1f · 66L JSON 1f · 36L
├─ 📁 scripts
│ ├─ 🔧 ensure-wallet.sh Shell 27L · 799 B
│ ├─ 🔧 pay-zen7-video.sh Shell 18L · 479 B
│ ├─ 📜 setup.js JavaScript 66L · 2.1 KB
│ └─ 🔧 setup.sh Shell 42L · 1.3 KB
├─ 📋 package.json JSON 36L · 691 B
├─ 📝 README.md Markdown 54L · 1.3 KB
└─ 📝 SKILL.md Markdown 121L · 3.2 KB

Dependencies 3 items

PackageVersionSourceKnown VulnsNotes
moltspay * npm No 无版本锁定,未知发布者,通过 npm install -g 安装后拥有完整 shell 权限
child_process bundled Node.js stdlib No Node.js 内置模块,无风险
fs bundled Node.js stdlib No Node.js 内置模块,无风险

Security Positives

✓ 代码逻辑简单清晰,无混淆、无 base64 编码执行
✓ 未发现凭证收割、环境变量遍历、SSH/AWS 密钥访问等敏感文件操作
✓ 未发现反向 shell、C2 通信、数据外泄的明确证据
✓ 钱包文件存储在标准用户目录,未外传
✓ 脚本有基本的错误处理(set -e、try-catch)