Scan Report
68 /100
moltspay_skill
Pay for AI services via MoltsPay protocol using USDC on Base chain
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.
Do not install this skill
Do not use this skill. It installs an untrusted npm package without version pinning, executes code on install via postinstall hook, and makes undeclared network requests. The entire `moltspay` package is a black box with no declared permissions.
Attack Chain 4 steps
◎
Entry User installs skill; postinstall hook triggers scripts/setup.js automatically
package.json:14⬡
Escalation setup.js executes 'npm install -g moltspay' installing untrusted package
scripts/setup.js:32⬡
Escalation Wallet created at ~/.moltspay/wallet.json with private key material
scripts/setup.js:48◉
Impact moltspay package code is a black box — any malicious behavior in its runtime is invisible to analysis
node_modules/moltspay (uninspectable)Findings 7 items
| Severity | Finding | Location |
|---|---|---|
| High | Untrusted third-party npm package installed without pinning Supply Chain | scripts/setup.sh:13 |
| High | Postinstall hook executes arbitrary code on skill install Supply Chain | package.json:14 |
| High | SKILL.md completely omits the npm install step Doc Mismatch | SKILL.md:1 |
| Medium | Undeclared shell execution via execSync and bash Priv Escalation | scripts/setup.js:17 |
| Medium | Wallet file stored in user home directory Sensitive Access | scripts/setup.js:10 |
| Medium | Undeclared network requests to external domains Priv Escalation | SKILL.md:45 |
| Low | npm package has no version lock Supply Chain | package.json:13 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | NONE | WRITE | ✗ Violation | setup.js:48 writes to ~/.moltspay/wallet.json |
| Network | NONE | READ | ✗ Violation | SKILL.md lines 45-52 list URLs but never declare network:READ |
| Shell | NONE | WRITE | ✗ Violation | setup.sh:13 'npm install -g moltspay'; setup.js:32 execSync('npm install -g molt… |
| Environment | NONE | READ | ✓ Aligned | setup.js reads os.homedir(); wallet.json likely contains private keys |
| Skill Invoke | NONE | WRITE | ✓ Aligned | postinstall hook in package.json auto-runs scripts/setup.js on skill install |
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
│ ├─
pay-zen7-video.sh
Shell
│ ├─
setup.js
JavaScript
│ └─
setup.sh
Shell
├─
package.json
JSON
├─
README.md
Markdown
└─
SKILL.md
Markdown
Dependencies 2 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
moltspay | latest (unpinned) | npm | No | Package from npmjs.com by Yaqing2023 — not audited, version not pinned, black box |
jq | * | system (used in setup.sh) | No | System dependency assumed present |
Security Positives
✓ No base64-encoded payloads or obfuscated code observed
✓ No hardcoded external IPs or C2 infrastructure
✓ No direct credential exfiltration to third parties observed in source scripts
✓ Wallet data stored locally rather than sent externally (based on visible scripts)