安全决策报告

moltspay_skill

MoltsPay 技能声称是支付工具,但其核心操作依赖于未版本锁定的 npm 包(moltspay)的全局安装与执行,setup.js 使用 execSync 执行任意命令,存在供应链风险;SKILL.md 未声明 npm 全局安装行为和外部网络请求范围。

安装决策优先 来源: ClawHub 扫描时间: 2026/4/6
文件 7
IOC 7
越权项 3
发现 5
最直接的威胁证据
01
用户安装/触发 skill,package.json postinstall 或 setup.sh/setup.js 执行 npm install -g moltspay(无版本锁定) 初始入口 · package.json
02
攻击者通过 npm 包劫持(抢注/账户被盗/恶意版本)发布恶意版 moltspay,agent 运行时自动安装 权限提升 · scripts/setup.sh
03
恶意 moltspay 包在 init/status/pay 命令中植入代码,窃取钱包私钥、收割环境变量或建立持久化后门 最终危害 · scripts/setup.js

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

阻止
攻击链与高危发现

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

复核
依赖与供应链卫生

发现 1 项需要关注的依赖或供应链线索。

攻击链

01
用户安装/触发 skill,package.json postinstall 或 setup.sh/setup.js 执行 npm install -g moltspay(无版本锁定)

初始入口 · package.json:18

02
攻击者通过 npm 包劫持(抢注/账户被盗/恶意版本)发布恶意版 moltspay,agent 运行时自动安装

权限提升 · scripts/setup.sh:14

03
恶意 moltspay 包在 init/status/pay 命令中植入代码,窃取钱包私钥、收割环境变量或建立持久化后门

最终危害 · scripts/setup.js:32

风险分是怎么被拉高的

供应链风险:npm 全局安装无版本锁定 +20

package.json postinstall 和 setup.sh/setup.js 均执行 'npm install -g moltspay',无版本锁定(^/*),moltspay 包源码未经审查

文档未声明 npm 全局安装行为 +12

SKILL.md 描述了 moltspay CLI 命令但未声明 skill 会全局安装 moltspay npm 包,用户无法在安装前审查

execSync 执行外部包命令 +10

setup.js 第 32 行使用 execSync('moltspay init ...') 执行未知包命令,若 moltspay 被篡改可执行任意代码

最关键的证据

高危 供应链

npm 全局安装 moltspay 无版本锁定

setup.sh:14、setup.js:32 和 package.json postinstall 均执行 'npm install -g moltspay',未指定版本或 hash。若 moltspay 包名被抢注、账号被盗或版本被污染,安装的代码将拥有 agent 的完整 shell 执行权限。

scripts/setup.sh:14
将依赖锁定至特定版本(npm install -g [email protected]),并建议在安装前验证 moltspay npm 包的发布者身份和源码。
高危 文档欺骗

SKILL.md 未声明 npm 全局安装行为

SKILL.md 列出了 moltspay CLI 命令(init/status/config/pay),但完全未提及 skill 会通过 npm 全局安装 moltspay 包这一核心前置步骤。用户阅读 SKILL.md 无法得知 skill 会执行 npm install -g。

SKILL.md:1
SKILL.md 应明确说明:本 skill 依赖 moltspay npm 包,会在首次运行时全局安装;提供包版本信息、源码仓库地址和可信度说明。
中危 代码执行

setup.js 使用 execSync 执行外部包命令

setup.js:32 调用 execSync('moltspay init --chain base ...'),若 moltspay 包被恶意替换,攻击者可在 init 命令中注入任意代码执行。setup.sh:27 通过 jq 解析 wallet.json 也存在命令注入风险(但路径由 ${HOME} 决定,攻击面较小)。

scripts/setup.js:32
使用 spawnSync 而非 execSync 避免 shell 解析;验证 moltspay 包的完整性(hash 比对)后再执行命令。
中危 文档欺骗

未声明的 filesystem 写入

SKILL.md 未声明本 skill 会写入 ${HOME}/.moltspay/wallet.json 文件。setup.sh:27 和 setup.js:54 会在用户主目录创建 .moltspay 目录和 wallet.json,这是高度敏感的钱包文件存储位置。

scripts/setup.sh:27
SKILL.md 应声明:'本 skill 会在 ~/.moltspay/ 下存储钱包配置文件'。
低危 供应链

package.json 无包版本锁定

moltspay-skill 自身的依赖(devDependencies/scripts)未指定版本,增加了依赖解析的不确定性。

package.json:16
为 scripts 依赖添加版本锁定。

声明能力 vs 实际能力

命令执行 阻止
声明 NONE
推断 WRITE
SKILL.md 未声明任何 shell 执行能力,但 scripts/setup.sh:14 和 scripts/setup.js:32 执行 npm install 和 moltspay 命令
网络访问 通过
声明 READ
推断 READ
SKILL.md 声明 GET https://moltspay.com/api/search、https://moltspay.com/api/services;实际 pay-zen7-video.sh 调用 moltspay pay https://juai8.com/zen7,符合声明范围
文件系统 阻止
声明 NONE
推断 WRITE
SKILL.md 未声明文件系统写入,但 setup.sh:27 和 setup.js:54 写入 ${HOME}/.moltspay/wallet.json
环境变量 阻止
声明 NONE
推断 READ
setup.js 使用 os.homedir() 获取 HOME 路径(隐式依赖环境变量),未在 SKILL.md 声明

可疑产物与外联

中危 外部 URL
https://juai8.com/zen7

README.md:29

中危 外部 URL
https://moltspay.com/docs

README.md:48

中危 外部 URL
https://moltspay.com/services

README.md:49

中危 外部 URL
https://discord.gg/QwCJgVBxVK

README.md:50

中危 外部 URL
https://moltspay.com/api/search?q=

SKILL.md:45

中危 外部 URL
https://moltspay.com/api/services

SKILL.md:46

中危 外部 URL
https://juai8.com/.well-known/agent-services.json

SKILL.md:52

依赖与供应链

包名版本来源漏洞备注
moltspay * npm 无版本锁定,未知发布者,通过 npm install -g 安装后拥有完整 shell 权限
child_process bundled Node.js stdlib Node.js 内置模块,无风险
fs bundled Node.js stdlib Node.js 内置模块,无风险

文件构成

7 个文件 · 364 行
Markdown 2 个文件 · 175 行Shell 3 个文件 · 87 行JavaScript 1 个文件 · 66 行JSON 1 个文件 · 36 行
需关注文件 · 5
SKILL.md Markdown · 121 行
SKILL.md 未声明 npm 全局安装行为 · https://moltspay.com/api/search?q= · https://moltspay.com/api/services · https://juai8.com/.well-known/agent-services.json
scripts/setup.js JavaScript · 66 行
setup.js 使用 execSync 执行外部包命令
scripts/setup.sh Shell · 42 行
npm 全局安装 moltspay 无版本锁定 · 未声明的 filesystem 写入
README.md Markdown · 54 行
https://juai8.com/zen7 · https://moltspay.com/docs · https://moltspay.com/services · https://discord.gg/QwCJgVBxVK
package.json JSON · 36 行
package.json 无包版本锁定
其他文件 · ensure-wallet.sh · pay-zen7-video.sh

安全亮点

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