moltspay_skill
The skill installs an unverified third-party npm package (`moltspay`) globally and executes wallet initialization code via a postinstall hook, with no declared shell or network permissions, creating a significant supply-chain and privilege-escalation risk.
为什么得出这个结论
2/4 个维度触发发现 3 项声明之外的能力或越权行为。
提取到 7 个一般风险产物,需要结合上下文判断。
报告包含 4 步攻击链,另有 3 项高危或严重发现。
发现 2 项需要关注的依赖或供应链线索。
攻击链
初始入口 · package.json:14
权限提升 · scripts/setup.js:32
持久化 · scripts/setup.js:48
最终危害 · node_modules/moltspay (uninspectable)
风险分是怎么被拉高的
SKILL.md never mentions npm install; skill runs 'npm install -g moltspay' (setup.sh:13, setup.js:32) without user disclosure
package.json has 'postinstall': 'node scripts/setup.js' which silently runs on npm install
npm install -g moltspay with no @version pins the package to latest; could be silently updated to a malicious version
execSync('npm install -g moltspay') and execSync('moltspay init') use shell:WRITE but SKILL.md declares no shell access
Queries moltspay.com and juai8.com APIs; SKILL.md lists URLs but never declares network:READ permission
Writes wallet to ~/.moltspay/wallet.json; SKILL.md never mentions filesystem write access
最关键的证据
Untrusted third-party npm package installed without pinning
setup.sh and setup.js both run 'npm install -g moltspay' from npmjs.com with no version constraint. The package is controlled by an unknown party (Yaqing2023/moltspay) and could be silently updated to a malicious version at any time.
scripts/setup.sh:13 Postinstall hook executes arbitrary code on skill install
package.json contains 'postinstall': 'node scripts/setup.js' which means the setup script (including npm install -g moltspay and wallet initialization) runs automatically when the skill is installed, without user consent.
package.json:14 SKILL.md completely omits the npm install step
SKILL.md describes a 'moltspay CLI' but never tells users that it will install a global npm package. Users have no opportunity to review or refuse the package installation before it happens.
SKILL.md:1 Undeclared shell execution via execSync and bash
Both setup.sh and setup.js execute shell commands (npm install -g, moltspay init, moltspay pay, moltspay status) but SKILL.md declares no shell permissions. The skill effectively escalates to shell:WRITE without documentation.
scripts/setup.js:17 Wallet file stored in user home directory
The skill creates and reads ~/.moltspay/wallet.json which likely contains private keys or seed phrases for the user's crypto wallet. SKILL.md does not disclose this data collection or storage behavior.
scripts/setup.js:10 Undeclared network requests to external domains
SKILL.md lists moltspay.com and juai8.com URLs but never formally declares network:READ permission. The actual HTTP calls made by the moltspay CLI to these endpoints are not documented.
SKILL.md:45 npm package has no version lock
The npm package 'moltspay' is not pinned to a specific version, creating replay risk if the package is later modified.
package.json:13 声明能力 vs 实际能力
setup.js:48 writes to ~/.moltspay/wallet.json SKILL.md lines 45-52 list URLs but never declare network:READ setup.sh:13 'npm install -g moltspay'; setup.js:32 execSync('npm install -g moltspay') setup.js reads os.homedir(); wallet.json likely contains private keys postinstall hook in package.json auto-runs scripts/setup.js on skill install 可疑产物与外联
https://juai8.com/zen7 README.md:29
https://moltspay.com/docs README.md:48
https://moltspay.com/services README.md:49
https://discord.gg/QwCJgVBxVK README.md:50
https://moltspay.com/api/search?q= SKILL.md:45
https://moltspay.com/api/services SKILL.md:46
https://juai8.com/.well-known/agent-services.json SKILL.md:52
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| moltspay | latest (unpinned) | npm | 否 | Package from npmjs.com by Yaqing2023 — not audited, version not pinned, black box |
| jq | * | system (used in setup.sh) | 否 | System dependency assumed present |
文件构成
SKILL.md scripts/setup.js scripts/setup.sh README.md package.json