Scan Report
15 /100
mofang-records
魔方网表记录管理 - MagicSquare no-code platform record management for CRUD operations
A legitimate MagicSquare (魔方网表) REST API wrapper skill with minor documentation inconsistencies but no malicious behavior detected.
Safe to install
Fix the missing cli.mjs file and update SKILL.md to reflect that handlers use fetch-based HTTP calls rather than exec-based CLI invocations. Otherwise safe to use.
Findings 5 items
| Severity | Finding | Location |
|---|---|---|
| Low | Missing cli.mjs entrypoint Doc Mismatch | package.json:7 |
| Low | SKILL.md declares exec-based CLI but handlers use fetch Doc Mismatch | SKILL.md:1 |
| Low | Undeclared filesystem WRITE access Priv Escalation | handlers/utils/cache.ts:33 |
| Low | Unpinned dependency node-fetch Supply Chain | package.json:16 |
| Info | Environment variable access for home directory Sensitive Access | handlers/utils/cache.ts:29 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | NONE | WRITE | ✗ Violation | handlers/utils/cache.ts:33 writes to ~/.mofang-skills/ |
| Network | NONE | READ | ✗ Violation | handlers/utils/http-client.ts:107 uses fetch to BASE_URL |
| Shell | WRITE | NONE | ✗ Violation | SKILL.md declares exec required but cli.mjs does not exist |
| Skill Invoke | NONE | NONE | — | No skill-to-skill invocation detected |
| Environment | NONE | READ | ✓ Aligned | handlers/utils/cache.ts:29 reads HOME/UserProfile |
| Clipboard | NONE | NONE | — | No clipboard access |
| Browser | NONE | NONE | — | No browser access |
| Database | NONE | NONE | — | No direct database access |
12 findings
Medium External URL 外部 URL
https://registry.npmmirror.com/@types/node/-/node-20.19.37.tgz package-lock.json:20 Medium External URL 外部 URL
https://registry.npmmirror.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz package-lock.json:30 Medium External URL 外部 URL
https://registry.npmmirror.com/fetch-blob/-/fetch-blob-3.2.0.tgz package-lock.json:39 Medium External URL 外部 URL
https://paypal.me/jimmywarting package-lock.json:48 Medium External URL 外部 URL
https://registry.npmmirror.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz package-lock.json:62 Medium External URL 外部 URL
https://registry.npmmirror.com/node-domexception/-/node-domexception-1.0.0.tgz package-lock.json:74 Medium External URL 外部 URL
https://registry.npmmirror.com/node-fetch/-/node-fetch-3.3.2.tgz package-lock.json:94 Medium External URL 外部 URL
https://opencollective.com/node-fetch package-lock.json:107 Medium External URL 外部 URL
https://registry.npmmirror.com/typescript/-/typescript-5.9.3.tgz package-lock.json:112 Medium External URL 外部 URL
https://registry.npmmirror.com/undici-types/-/undici-types-6.21.0.tgz package-lock.json:126 Medium External URL 外部 URL
https://registry.npmmirror.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz package-lock.json:133 Medium External URL 外部 URL
https://example.mf999.com skill.json:11 File Tree
39 files · 116.3 KB · 3602 lines TypeScript 22f · 1869L
JavaScript 11f · 1100L
JSON 5f · 434L
Markdown 1f · 199L
├─
▾
dist
│ ├─
▾
utils
│ │ ├─
base64.d.ts
TypeScript
│ │ ├─
base64.js
JavaScript
│ │ ├─
bq-builder.d.ts
TypeScript
│ │ ├─
bq-builder.js
JavaScript
│ │ ├─
cache.d.ts
TypeScript
│ │ ├─
cache.js
JavaScript
│ │ ├─
field-defs.d.ts
TypeScript
│ │ ├─
field-defs.js
JavaScript
│ │ ├─
http-client.d.ts
TypeScript
│ │ ├─
http-client.js
JavaScript
│ │ ├─
resolve.d.ts
TypeScript
│ │ └─
resolve.js
JavaScript
│ ├─
fields.d.ts
TypeScript
│ ├─
fields.js
JavaScript
│ ├─
forms.d.ts
TypeScript
│ ├─
forms.js
JavaScript
│ ├─
health.d.ts
TypeScript
│ ├─
health.js
JavaScript
│ ├─
records.d.ts
TypeScript
│ ├─
records.js
JavaScript
│ ├─
spaces.d.ts
TypeScript
│ └─
spaces.js
JavaScript
├─
▾
handlers
│ ├─
▾
utils
│ │ ├─
base64.ts
TypeScript
│ │ ├─
bq-builder.ts
TypeScript
│ │ ├─
cache.ts
TypeScript
│ │ ├─
field-defs.ts
TypeScript
│ │ ├─
http-client.ts
TypeScript
│ │ └─
resolve.ts
TypeScript
│ ├─
fields.ts
TypeScript
│ ├─
forms.ts
TypeScript
│ ├─
health.ts
TypeScript
│ ├─
records.ts
TypeScript
│ └─
spaces.ts
TypeScript
├─
package-lock.json
JSON
├─
package.json
JSON
├─
skill.json
JSON
├─
SKILL.md
Markdown
├─
tools.json
JSON
└─
tsconfig.json
JSON
Dependencies 3 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
node-fetch | ^3.3.2 | npm | No | Version not pinned, minor/patch updates allowed |
@types/node | ^20.11.0 | npm | No | Dev dependency, only needed for type checking |
typescript | ^5.3.0 | npm | No | Dev dependency, build-time only |
Security Positives
✓ No eval(), exec(), spawn(), or other code execution primitives found
✓ No base64-encoded strings being decoded and executed
✓ No credential exfiltration - passwords are only used for JWT token acquisition
✓ No access to ~/.ssh, ~/.aws, .env, or other sensitive credential paths
✓ No reverse shell, C2 communication, or data exfiltration patterns
✓ No obfuscation techniques detected (no obfuscated code, no suspicious string manipulation)
✓ No supply chain IOCs (typosquatting, malicious packages) - only standard npm dependencies
✓ Token caching is in-memory only, not written to disk (tokens stay in cachedToken variable)
✓ Cache files are scoped to BASE_URL hash, not global, reducing collision risk
✓ Comprehensive input validation on API parameters