Skill Trust Decision

moltspay_skill

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

Install decision first Source: ClawHub Scanned: Apr 6, 2026
Files 7
Artifacts 7
Violations 3
Findings 5
Most direct threat evidence
01
用户安装/触发 skill,package.json postinstall 或 setup.sh/setup.js 执行 npm install -g moltspay(无版本锁定) Entry · package.json
02
攻击者通过 npm 包劫持(抢注/账户被盗/恶意版本)发布恶意版 moltspay,agent 运行时自动安装 Escalation · scripts/setup.sh
03
恶意 moltspay 包在 init/status/pay 命令中植入代码,窃取钱包私钥、收割环境变量或建立持久化后门 Impact · scripts/setup.js

Why this conclusion was reached

2/4 dimensions flagged
Block
Declared vs actual capability

3 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 3 attack-chain steps and 2 severe findings.

Review
Dependencies and supply chain hygiene

1 dependency or supply-chain issues need attention.

Attack Chain

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

Entry · package.json:18

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

Escalation · scripts/setup.sh:14

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

Impact · scripts/setup.js:32

What drove the risk score up

供应链风险: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 被篡改可执行任意代码

Most important evidence

High Supply Chain

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 包的发布者身份和源码。
High Doc Mismatch

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 包,会在首次运行时全局安装;提供包版本信息、源码仓库地址和可信度说明。
Medium RCE

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 比对)后再执行命令。
Medium Doc Mismatch

未声明的 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/ 下存储钱包配置文件'。
Low Supply Chain

package.json 无包版本锁定

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

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

Declared capability vs actual capability

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

Suspicious artifacts and egress

Medium External URL
https://juai8.com/zen7

README.md:29

Medium External URL
https://moltspay.com/docs

README.md:48

Medium External URL
https://moltspay.com/services

README.md:49

Medium External URL
https://discord.gg/QwCJgVBxVK

README.md:50

Medium External URL
https://moltspay.com/api/search?q=

SKILL.md:45

Medium External URL
https://moltspay.com/api/services

SKILL.md:46

Medium External URL
https://juai8.com/.well-known/agent-services.json

SKILL.md:52

Dependencies and supply chain

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

File composition

7 files · 364 lines
Markdown 2 files · 175 linesShell 3 files · 87 linesJavaScript 1 files · 66 linesJSON 1 files · 36 lines
Files of concern · 5
SKILL.md Markdown · 121 lines
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 lines
setup.js 使用 execSync 执行外部包命令
scripts/setup.sh Shell · 42 lines
npm 全局安装 moltspay 无版本锁定 · 未声明的 filesystem 写入
README.md Markdown · 54 lines
https://juai8.com/zen7 · https://moltspay.com/docs · https://moltspay.com/services · https://discord.gg/QwCJgVBxVK
package.json JSON · 36 lines
package.json 无包版本锁定
Other files · ensure-wallet.sh · pay-zen7-video.sh

Security positives

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