Scan Report
45 /100
1panel
Comprehensive 1Panel server management skill for AI agents — 580+ API endpoints
The skill is a legitimate 1Panel API client with no direct malicious code, but its SKILL.md severely under-reports exposed capabilities (exec_command, file write, SSH management, process kill) that are not declared in the documented command surface.
Use with caution
Add exec_command, file write/delete, SSH key management, process kill, and host management to SKILL.md if they are intended features. If these capabilities are unintentional leakage from the underlying API library, restrict the CLI entry point to only the documented commands.
Findings 8 items
| Severity | Finding | Location |
|---|---|---|
| Medium | Undeclared arbitrary command execution via 1Panel Terminal API Doc Mismatch | src/tools/system.ts:17 |
| Medium | Undeclared filesystem write and delete operations Doc Mismatch | src/api/files.ts:70 |
| Medium | Undeclared SSH credential and key management Doc Mismatch | src/tools/host.ts:3 |
| Medium | Undeclared process kill capability Doc Mismatch | src/tools/system.ts:17 |
| Medium | SKILL.md claims 580+ API endpoints but CLI exposes ~12 commands Doc Mismatch | SKILL.md:1 |
| Low | Unpinned dependency versions in package.json Supply Chain | package.json:28 |
| Low | OPENCLAW_INSTALL.md contains 'rm -rf ~' command Doc Mismatch | OPENCLAW_INSTALL.md:175 |
| Low | No input validation or path restrictions on file operations Priv Escalation | src/api/files.ts:30 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Network | NONE | READ | ✓ Aligned | ONEPANEL_HOST env var, BaseAPI makes HTTP requests to 1Panel server |
| Filesystem | NONE | WRITE | ✗ Violation | src/api/files.ts:FileAPI.save() — file write not declared in SKILL.md |
| Shell | NONE | WRITE | ✗ Violation | src/tools/system.ts:exec_command — arbitrary command execution via 1Panel Termin… |
| Environment | NONE | READ | ✓ Aligned | ONEPANEL_API_KEY, ONEPANEL_HOST, ONEPANEL_PORT, ONEPANEL_PROTOCOL read from env |
| Skill Invoke | READ | READ | ✓ Aligned | SKILL.md defines CLI commands |
| Database | NONE | WRITE | ✗ Violation | src/api/database.ts — create/delete/operate databases, not declared in SKILL.md |
| Browser | NONE | NONE | — | No browser access found |
| Clipboard | NONE | NONE | — | No clipboard access found |
1 Critical 1 High 7 findings
Critical Dangerous Command 危险 Shell 命令
rm -rf ~ OPENCLAW_INSTALL.md:175 High API Key 疑似硬编码凭证
API_KEY="your-1panel-api-key" OPENCLAW_INSTALL.md:37 Medium External URL 外部 URL
https://img.shields.io/npm/v/1panel-skill.svg README.md:3 Medium External URL 外部 URL
https://www.npmjs.com/package/1panel-skill README.md:3 Medium External URL 外部 URL
https://img.shields.io/badge/License-MIT-yellow.svg README.md:4 Medium External URL 外部 URL
https://opensource.org/licenses/MIT README.md:4 Medium External URL 外部 URL
https://1panel.cn/ README.md:390 File Tree
89 files · 274.5 KB · 7826 lines TypeScript 75f · 5671L
Markdown 7f · 1320L
Python 3f · 476L
JavaScript 2f · 286L
JSON 2f · 73L
├─
▾
scripts
│ ├─
1panel.mjs
JavaScript
│ ├─
generate_all_apis_fixed.py
Python
│ ├─
generate_all_apis.py
Python
│ ├─
generate_apis.py
Python
│ └─
generate-api.cjs
JavaScript
├─
▾
src
│ ├─
▾
api
│ │ ├─
ai.ts
TypeScript
│ │ ├─
apps.ts
TypeScript
│ │ ├─
backup.ts
TypeScript
│ │ ├─
backupaccount.ts
TypeScript
│ │ ├─
base.ts
TypeScript
│ │ ├─
clam.ts
TypeScript
│ │ ├─
composes.ts
TypeScript
│ │ ├─
container.ts
TypeScript
│ │ ├─
cronjobs.ts
TypeScript
│ │ ├─
dashboard.ts
TypeScript
│ │ ├─
database.ts
TypeScript
│ │ ├─
device.ts
TypeScript
│ │ ├─
disk.ts
TypeScript
│ │ ├─
fail2ban.ts
TypeScript
│ │ ├─
file.ts
TypeScript
│ │ ├─
files.ts
TypeScript
│ │ ├─
firewall.ts
TypeScript
│ │ ├─
ftp.ts
TypeScript
│ │ ├─
gpu.ts
TypeScript
│ │ ├─
host.ts
TypeScript
│ │ ├─
images.ts
TypeScript
│ │ ├─
index.ts
TypeScript
│ │ ├─
logs.ts
TypeScript
│ │ ├─
monitor.ts
TypeScript
│ │ ├─
networks.ts
TypeScript
│ │ ├─
node.ts
TypeScript
│ │ ├─
ollama.ts
TypeScript
│ │ ├─
openresty.ts
TypeScript
│ │ ├─
php.ts
TypeScript
│ │ ├─
process.ts
TypeScript
│ │ ├─
recyclebin.ts
TypeScript
│ │ ├─
runtime.ts
TypeScript
│ │ ├─
settings.ts
TypeScript
│ │ ├─
snapshot.ts
TypeScript
│ │ ├─
ssh.ts
TypeScript
│ │ ├─
system.ts
TypeScript
│ │ ├─
task.ts
TypeScript
│ │ ├─
terminal.ts
TypeScript
│ │ ├─
volumes.ts
TypeScript
│ │ └─
website.ts
TypeScript
│ ├─
▾
tools
│ │ ├─
ai.ts
TypeScript
│ │ ├─
app.ts
TypeScript
│ │ ├─
backup.ts
TypeScript
│ │ ├─
clam.ts
TypeScript
│ │ ├─
compose.ts
TypeScript
│ │ ├─
container.ts
TypeScript
│ │ ├─
cronjob.ts
TypeScript
│ │ ├─
database.ts
TypeScript
│ │ ├─
device.ts
TypeScript
│ │ ├─
disk.ts
TypeScript
│ │ ├─
fail2ban.ts
TypeScript
│ │ ├─
file.ts
TypeScript
│ │ ├─
firewall.ts
TypeScript
│ │ ├─
ftp.ts
TypeScript
│ │ ├─
gpu.ts
TypeScript
│ │ ├─
host.ts
TypeScript
│ │ ├─
image.ts
TypeScript
│ │ ├─
index.ts
TypeScript
│ │ ├─
network.ts
TypeScript
│ │ ├─
node.ts
TypeScript
│ │ ├─
ollama.ts
TypeScript
│ │ ├─
openresty.ts
TypeScript
│ │ ├─
php.ts
TypeScript
│ │ ├─
recyclebin.ts
TypeScript
│ │ ├─
runtime.ts
TypeScript
│ │ ├─
snapshot.ts
TypeScript
│ │ ├─
system.ts
TypeScript
│ │ ├─
task.ts
TypeScript
│ │ ├─
volume.ts
TypeScript
│ │ └─
website.ts
TypeScript
│ ├─
▾
types
│ │ └─
config.ts
TypeScript
│ ├─
▾
utils
│ │ └─
auth.ts
TypeScript
│ ├─
client-advanced.ts
TypeScript
│ ├─
client.ts
TypeScript
│ └─
index.ts
TypeScript
├─
API_COVERAGE_FINAL.md
Markdown
├─
API_COVERAGE_REPORT.md
Markdown
├─
IMPLEMENTATION_PLAN.md
Markdown
├─
OPENCLAW_INSTALL.md
Markdown
├─
package.json
JSON
├─
PROGRESS.md
Markdown
├─
README.md
Markdown
├─
SKILL.md
Markdown
└─
tsconfig.json
JSON
Dependencies 3 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
@types/node | ^20.19.37 | npm | No | Version not pinned, uses caret range |
typescript | ^5.9.3 | npm | No | Version not pinned, uses caret range |
none (runtime) | N/A | npm | No | Zero runtime dependencies — only Node.js standard library used |
Security Positives
✓ No direct shell execution on the host machine — all operations route through the 1Panel REST API
✓ No obfuscation, base64-encoded payloads, or anti-analysis techniques detected
✓ No credential harvesting beyond the ONEPANEL_API_KEY which is necessary for the service
✓ No external network exfiltration or C2 communication — all requests target the configured 1Panel server
✓ No reverse shell, backdoor, or persistence mechanisms found in the codebase
✓ No hidden instructions in HTML comments or other steganographic patterns
✓ Clean auth implementation using MD5(token,timestamp) signature, matching 1Panel's expected protocol
✓ No malicious dependencies — package.json has zero runtime dependencies, only TypeScript dev tooling
✓ No npm scripts that execute remote content (no curl|bash, wget|sh patterns)
✓ Codebase is a well-structured TypeScript library, consistent with a legitimate API client