1panel
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.
为什么得出这个结论
2/4 个维度触发发现 3 项声明之外的能力或越权行为。
提取到 2 个高危 IOC 或外联信号。
没有形成明确的恶意路径。
发现 2 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
system.ts 'exec_command' tool executes arbitrary shell commands via 1Panel API, not declared in SKILL.md documented commands or capabilities list
File save/delete/chmod/chown via 1Panel API not declared in SKILL.md command table
SSH key generation/management, host credential storage (password/privateKey) not declared
SKILL.md lists ~12 CLI commands but the underlying library exposes 200+ methods with system-level access, misleading users about actual scope
最关键的证据
Undeclared arbitrary command execution via 1Panel Terminal API
SKILL.md documents only 12 CLI commands (containers, images, websites, etc.), but the underlying tools layer exposes 'exec_command' which sends arbitrary shell commands to the 1Panel server via /api/v2/hosts/command. This is a fundamental system-level capability completely absent from SKILL.md.
src/tools/system.ts:17 Undeclared filesystem write and delete operations
SKILL.md lists 'files <path>' as a read-only listing command, but the underlying FileAPI supports save(), delete(), chmod(), chown(), compress(), decompress() with no path restrictions. A compromised agent could overwrite system files, change permissions, or delete directories on the managed server.
src/api/files.ts:70 Undeclared SSH credential and key management
SKILL.md does not mention SSH management at all. The host.ts tools expose creating hosts with password or privateKey credentials, generating SSH keys, and modifying SSH configurations. These are sensitive infrastructure operations not declared in the skill documentation.
src/tools/host.ts:3 Undeclared process kill capability
The 'kill_process' tool in system.ts can kill arbitrary processes by PID with no restrictions declared in SKILL.md. This could be used to disrupt services.
src/tools/system.ts:17 SKILL.md claims 580+ API endpoints but CLI exposes ~12 commands
SKILL.md advertises '580+ API endpoints covering containers, databases, websites, SSL, file management, system monitoring, and more', implying broad access. However, the 1panel.mjs CLI only exposes ~12 commands. The gap between the library's 200+ methods and the CLI's documented surface creates a misleading impression of limited scope.
SKILL.md:1 Unpinned dependency versions in package.json
devDependencies use caret (^) version ranges: '@types/node': '^20.19.37', 'typescript': '^5.9.3'. This allows installing newer potentially vulnerable versions without review.
package.json:28 OPENCLAW_INSTALL.md contains 'rm -rf ~' command
Line 175 of OPENCLAW_INSTALL.md shows 'rm -rf ~/.openclaw/skills/1panel' as an uninstall example. The use of '~' shell expansion in documentation is a dangerous pattern — if executed literally without shell expansion, it could resolve unexpectedly. Here it is documentation text, not executable code, so the risk is low.
OPENCLAW_INSTALL.md:175 No input validation or path restrictions on file operations
File operations accept arbitrary paths with no validation to prevent access to system directories like /etc, /root, /home. Combined with undeclared WRITE access, this could allow modification of sensitive system files.
src/api/files.ts:30 声明能力 vs 实际能力
ONEPANEL_HOST env var, BaseAPI makes HTTP requests to 1Panel server src/api/files.ts:FileAPI.save() — file write not declared in SKILL.md src/tools/system.ts:exec_command — arbitrary command execution via 1Panel Terminal API, not declared in SKILL.md ONEPANEL_API_KEY, ONEPANEL_HOST, ONEPANEL_PORT, ONEPANEL_PROTOCOL read from env SKILL.md defines CLI commands src/api/database.ts — create/delete/operate databases, not declared in SKILL.md No browser access found No clipboard access found 可疑产物与外联
rm -rf ~ OPENCLAW_INSTALL.md:175
API_KEY="your-1panel-api-key" OPENCLAW_INSTALL.md:37
https://img.shields.io/npm/v/1panel-skill.svg README.md:3
https://www.npmjs.com/package/1panel-skill README.md:3
https://img.shields.io/badge/License-MIT-yellow.svg README.md:4
https://opensource.org/licenses/MIT README.md:4
https://1panel.cn/ README.md:390
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| @types/node | ^20.19.37 | npm | 否 | Version not pinned, uses caret range |
| typescript | ^5.9.3 | npm | 否 | Version not pinned, uses caret range |
| none (runtime) | N/A | npm | 否 | Zero runtime dependencies — only Node.js standard library used |
文件构成
README.md src/api/files.ts