扫描报告
20 /100
skill-dep-fixer
Scan installed OpenClaw skills, detect missing dependencies (npm, pip, brew, system binaries), and auto-fix what's fixable.
A legitimate dependency management tool for OpenClaw skills, but with significant doc-to-code mismatch: the --fix shell execution and --init/--manifest hidden flags are entirely undeclared in SKILL.md.
可以安装
Declare all CLI flags (--fix, --init, --name, --description, --manifest) and the shell:WRITE capability in SKILL.md. Version-pin npm dependencies (chalk, js-yaml). Audit the --manifest path for supply-chain risks before merging.
安全发现 5 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 中危 | Undeclared --fix flag triggers shell:WRITE execution 文档欺骗 | skill-dep-fixer.js:144 |
| 中危 | Undeclared --init flag performs filesystem:WRITE to ~/.openclaw 文档欺骗 | skill-dep-fixer.js:119 |
| 中危 | Undeclared --manifest flag introduces alternative code path 文档欺骗 | src/skill-dep-fixer.js:25 |
| 低危 | npm dependencies not version-pinned 供应链 | package.json:19 |
| 低危 | Reads environment variables via os.homedir() for npm prefix resolution 敏感访问 | src/installer.js:46 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | NONE | WRITE | ✗ 越权 | skill-dep-fixer.js:119 - initSkill writes to ~/.openclaw/workspace/skills/ |
| 命令执行 | NONE | WRITE | ✗ 越权 | skill-dep-fixer.js:144 - installCommand() returns brew/npm/pip install commands … |
| 环境变量 | NONE | READ | ✗ 越权 | src/installer.js:6 - os.homedir() used for npm prefix resolution |
| 网络访问 | NONE | READ | ✓ 一致 | src/installer.js - npm install -g / brew install / pip install trigger outbound … |
目录结构
8 文件 · 27.4 KB · 977 行 JavaScript 6f · 857L
Markdown 1f · 96L
JSON 1f · 24L
├─
▾
src
│ ├─
checkers.js
JavaScript
│ ├─
installer.js
JavaScript
│ ├─
parsers.js
JavaScript
│ ├─
reporter.js
JavaScript
│ └─
skill-dep-fixer.js
JavaScript
├─
package.json
JSON
├─
skill-dep-fixer.js
JavaScript
└─
SKILL.md
Markdown
依赖分析 2 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
chalk | ^4.1.2 | npm | 否 | Caret range — not pinned to exact version |
js-yaml | ^4.1.1 | npm | 否 | Caret range — not pinned to exact version |
安全亮点
✓ Uses shellQuote() with proper single-quote escaping in installer.js, mitigating command injection
✓ No base64-encoded strings, eval(), or dynamic code generation found
✓ No credential harvesting, environment variable enumeration, or sensitive path access (no ~/.ssh, ~/.aws, .env reads)
✓ No curl|bash or wget|sh remote script execution patterns
✓ No network exfiltration or C2 communication
✓ Dependencies (chalk, js-yaml) are well-known, reputable npm packages
✓ The core functionality (checking and fixing skill dependencies) is accurately described, even if --fix is undocumented
✓ src/installer.js has proper error handling for network failures and EACCES permission errors with graceful fallbacks