Scan Report
55 /100
buy-domain-helper
3-layer site launcher: tunnel any HTML instantly, deploy to Cloudflare Pages, then buy a domain and link it via DNS
Skill has multiple undeclared shell execution patterns, supply-chain risk from npx -y arbitrary package execution, and potential command injection from unsanitized user inputs passed to wrangler CLI.
Use with caution
Remove npx -y serve; pin it as a project dependency. Sanitize projectName and dir arguments before shell interpolation. Declare all env vars (NETA_TOKEN, CF_API_TOKEN, CF_ACCOUNT_ID) in SKILL.md env. Replace execSync('brew install') with explicit dependency requirement.
Findings 5 items
| Severity | Finding | Location |
|---|---|---|
| High | Undeclared shell execution via execSync and spawn Priv Escalation | site.js:70-71, 90, 102 |
| High | npx -y serve downloads and executes arbitrary unpinned npm package at runtime Supply Chain | site.js:90 |
| Medium | NETA_TOKEN environment variable declared in package.json but absent from SKILL.md Doc Mismatch | package.json:7 |
| Medium | Command injection risk: unsanitized user inputs in shell commands RCE | site.js:102 |
| Medium | Full process.env inherited by child processes Priv Escalation | site.js:104 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Shell | NONE | WRITE | ✗ Violation | site.js:70 execSync('which cloudflared'); site.js:71 execSync('brew install clou… |
| Network | NONE | READ | ✗ Violation | site.js:26 fetches api.cloudflare.com; site.js:90 spawns npx which reaches npm r… |
| Environment | NONE | READ | ✗ Violation | site.js:29-30 reads CF_API_TOKEN, CF_ACCOUNT_ID; site.js:104 passes full process… |
| Filesystem | NONE | WRITE | ✗ Violation | site.js:90 npx serve writes to disk in /tmp; wrangler deploy writes build artifa… |
8 findings
Medium External URL 外部 URL
https://abc.trycloudflare.com README.md:41 Medium External URL 外部 URL
https://*.trycloudflare.com README.md:65 Medium External URL 外部 URL
https://dash.cloudflare.com/profile/api-tokens README.md:81 Medium External URL 外部 URL
https://abc123.my-site.pages.dev README.md:88 Medium External URL 外部 URL
https://dash.cloudflare.com/ README.md:110 Medium External URL 外部 URL
https://mysite.com README.md:149 Medium External URL 外部 URL
https://www.neta.art/open/ package.json:9 Medium External URL 外部 URL
https://api.cloudflare.com/client/v4 site.js:26 File Tree
4 files · 15.4 KB · 420 lines Markdown 2f · 240L
JavaScript 1f · 166L
JSON 1f · 14L
├─
package.json
JSON
├─
README.md
Markdown
├─
site.js
JavaScript
└─
SKILL.md
Markdown
Dependencies 3 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
serve | unpinned | npm (via npx -y) | No | Not listed in package.json; downloaded at runtime via npx -y without version pin — supply-chain risk |
cloudflared | unpinned | Homebrew | No | Installed via brew install if missing, not declared in package.json |
wrangler | unpinned | npm/global | No | Required binary, not declared in package.json |
Security Positives
✓ No credential exfiltration — tokens are used only for Cloudflare API calls
✓ README.md is thorough and transparently documents the tunnel, pages, and DNS layers
✓ No base64-encoded payloads or obfuscated code
✓ No attempt to access ~/.ssh, ~/.aws, .env, or other sensitive paths
✓ No persistence mechanisms (cron, startup hooks, backdoors) detected
✓ API calls are limited to official Cloudflare API endpoints