moltspay-skill
The skill is a crypto payment tool that downloads and installs an undeclared external `moltspay` npm package, auto-creates a wallet with private keys in ~/.moltspay/, and can spend real funds — the `moltspay` package is not on npm, not pinned, and its code is uninspectable, creating a significant supply-chain risk.
为什么得出这个结论
2/4 个维度触发发现 4 项声明之外的能力或越权行为。
提取到 7 个一般风险产物,需要结合上下文判断。
报告包含 5 步攻击链,另有 6 项高危或严重发现。
依赖结构存在,但暂未看到明显高危告警。
攻击链
初始入口 · package.json:8
supply_chain · scripts/setup.js:36
credential_creation · scripts/setup.js:45
exposure · scripts/setup.js:36
最终危害 · package.json:12
风险分是怎么被拉高的
SKILL.md describes moltspay CLI commands but never mentions that moltspay is a separately published npm package. Both setup scripts do 'npm install -g moltspay' — this external dependency is the entire execution engine and is completely undeclared in documentation.
The 'moltspay' package cannot be verified on the public npm registry. There is no package.json dependency declaration, no lock file, and no version pin. Any update to the package silently changes the skill's behavior.
package.json has 'postinstall': 'node scripts/setup.js', which means setup runs automatically on npm install without user consent. This auto-initializes a wallet and attempts to install the external moltspay package.
Wallet creation stores private keys/seed phrases in a file outside the skill directory. If the moltspay package is compromised or malicious, it can read and exfiltrate these credentials silently.
Triggers include 'pay', 'buy', 'purchase', 'video', 'generate', 'wallet', 'balance' — common phrases that could cause unintended activation. Combined with the external package risk, this expands the attack surface.
最关键的证据
Undeclared external npm dependency
SKILL.md describes moltspay as a set of CLI commands but never discloses that moltspay is a separately published npm package installed via 'npm install -g moltspay'. This external dependency — not contained in this repository — is the entire execution engine. Its code is entirely uninspectable from this skill's files.
scripts/setup.sh:12 moltspay package not verifiable on npm
The 'moltspay' package does not appear in the public npm registry under that name. This means: (1) the install commands will fail, making the skill non-functional, or (2) the package exists under a different name or from a private registry that is also undisclosed. Either way, the supply chain is opaque.
scripts/setup.js:36 No version pinning on external package
Both setup scripts use 'npm install -g moltspay' without any version specifier. The package can be updated at any time, silently changing the skill's behavior — including the payment logic, network calls, and credential handling.
scripts/setup.sh:12 Documentation presents moltspay as native capability
SKILL.md lists commands like 'moltspay init', 'moltspay fund', 'moltspay pay' as if they are native to the skill. No mention is made that these require a separately-installed external package. Users reading SKILL.md have no way to know the skill downloads and executes undeclared code at setup time.
SKILL.md:1 Private keys stored in ~/.moltspay/wallet.json
The skill creates a wallet storing private keys/seed phrases at ${HOME}/.moltspay/wallet.json. This file is created and accessed by the external 'moltspay' package at runtime. If that package is compromised, it can silently read and exfiltrate these credentials.
scripts/setup.sh:15 Auto-run setup via postinstall hook
package.json contains 'postinstall': 'node scripts/setup.js', which runs automatically when the skill is installed via npm. This silently executes wallet initialization and an npm global install without any user interaction or consent.
package.json:8 Undeclared network access for payment operations
SKILL.md does not declare that moltspay pay/services/fund make outbound network requests to provider URLs and external payment infrastructure. The 'moltspay fund' command contacts a QR code/payment server. This network behavior is entirely undeclared.
SKILL.md:29 Undeclared filesystem WRITE to user home directory
SKILL.md declares no filesystem access. In practice, setup.sh and setup.js write wallet state to ${HOME}/.moltspay/wallet.json in the user's home directory — a sensitive user-owned path. This is a doc-to-code capability mismatch.
scripts/setup.sh:15 还有 1 项发现未展开显示
声明能力 vs 实际能力
setup.sh:12, setup.js:36 — npm install -g moltspay; setup.sh:22, setup.js:45 — moltspay init; pay-zen7-video.sh:20 — moltspay pay setup.sh:15, setup.js:14 — writes to ${HOME}/.moltspay/wallet.json SKILL.md:moltspay services fetches from provider URLs; moltspay pay contacts external service endpoints; moltspay fund contacts QR code server package.json:openclaw:triggers — ['pay','buy','purchase','video','generate','wallet','balance']; postinstall hook auto-executes setup.js on npm install wallet.json at ~/.moltspay/ stores private keys; accessed by external moltspay package at runtime Wallet creation and x402 protocol likely read RPC URLs and auth tokens from environment; moltspay fund may read payment credentials 可疑产物与外联
https://juai8.com/zen7 README.md:51
https://moltspay.com README.md:58
https://moltspay.com/docs README.md:78
https://moltspay.com/services README.md:79
https://discord.gg/QwCJgVBxVK README.md:80
https://clawhub.ai/user/yaqing2023 skill-card.md:7
https://clawhub.ai/yaqing2023/moltspay-skill skill-card.md:29
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| moltspay | unpinned | npm (global) | 否 | Package not found on public npm registry. No version specified. Entire execution engine is this external, unauditable package. |
文件构成
SKILL.md README.md skill-card.md scripts/setup.js scripts/setup.sh package.json