Suspicious — Risk Score 45/100
Last scan:10 hr ago Rescan
45 /100
skill-gatekeeper
技能門禁系統 - 自動審核、沙盒測試、安全放行
Skill Gatekeeper 是合法的安全审核工具,但存在未声明的外部命令执行和硬编码路径问题,需要谨慎审查。
Skill Nameskill-gatekeeper
Duration36.5s
Enginepi
Use with caution
审查代码中的 child_process.execSync 调用和硬编码路径,确认是否超出声明权限。建议移除硬编码路径并使用更安全的命令执行方式。

Attack Chain 3 steps

Entry 用户执行 skill-gatekeeper install <slug> 命令
SKILL.md:28
Escalation 通过 child_process.execSync 执行外部 clawhub CLI
gatekeeper.ts:261
Impact CLI 工具可被替换为恶意版本,执行任意命令
gatekeeper.ts:261

Findings 4 items

Severity Finding Location
High
未声明的外部命令执行 RCE
代码使用 child_process.execSync 执行 clawhub CLI 工具安装技能,但 SKILL.md 中未声明此行为。这是明显的阴影功能。
execSync(`node "C:/Users/ReaMasTer/AppData/Roaming/npm/node_modules/clawhub/bin/clawdhub.js" install ${slug} --dir "${SKILL_DIR}"`)
→ 在 SKILL.md 中声明 shell:WRITE 权限,或改用更安全的安装方式
gatekeeper.ts:261
High
硬编码用户路径信息泄露 Sensitive Access
代码中硬编码了 Windows 用户路径 'C:/Users/ReaMasTer/',这暴露了开发者的系统信息,在跨平台部署时会导致功能失效。
C:/Users/ReaMasTer/AppData/Roaming/npm/node_modules/clawhub/bin/clawdhub.js
→ 使用动态路径发现或跨平台路径处理,避免硬编码用户目录
gatekeeper.ts:261
Medium
声明-行为权限不一致 Doc Mismatch
SKILL.md 描述为'自动审核'工具,但未声明实际的 filesystem:WRITE 和 shell:WRITE 权限需求
skill-gatekeeper - 技能門禁系統
→ 在 metadata.requires 或文档中明确声明所需权限
SKILL.md:1
Low
依赖 clawhub CLI 工具 Supply Chain
安装功能依赖外部 clawhub 工具的可用性,该工具不在 skill 包内
clawhub/bin/clawdhub.js
→ 考虑内置安装逻辑或明确声明对 clawhub 的依赖
gatekeeper.ts:261
ResourceDeclaredInferredStatusEvidence
Filesystem NONE WRITE ✗ Violation gatekeeper.ts:55-57 cpSync/mkdirSync 复制文件到沙盒目录
Shell NONE WRITE ✗ Violation gatekeeper.ts:261 execSync 调用外部 CLI 工具
Network NONE READ ✗ Violation gatekeeper.ts:112 fetch 访问 VirusTotal API
1 findings
🔗
Medium External URL 外部 URL
https://www.virustotal.com/api/v3/files/$
gatekeeper.ts:112

File Tree

2 files · 18.1 KB · 528 lines
TypeScript 1f · 411L Markdown 1f · 117L
├─ 📜 gatekeeper.ts TypeScript 411L · 14.3 KB
└─ 📝 SKILL.md Markdown 117L · 3.8 KB

Security Positives

✓ 功能设计合理:用于审核其他技能的安全性
✓ 内置风险模式检测:检测 eval/exec/键盘侧录等危险行为
✓ 沙盒隔离机制:先复制到沙盒再扫描
✓ VirusTotal 集成:云端恶意软件检测
✓ 隔离区机制:拒绝危险技能时移动到隔离区