Suspicious — Risk Score 45/100
Last scan:2 days ago Rescan
45 /100
skill-security-vet
技能安全審核 - 整合本地掃描 + VirusTotal 雲端威脅情報
安全扫描工具存在重大文档-行为差异:vet.ts 支持扫描整个本地驱动器、自动隔离/删除文件,但 SKILL.md 完全未声明这些能力
Skill Nameskill-security-vet
Duration33.6s
Enginepi
Use with caution
要求开发者补充完整文档,明确声明本地驱动器扫描范围、自动隔离功能及配置路径。若仅用于扫描技能目录,应移除系统驱动器扫描代码

Findings 4 items

Severity Finding Location
High
未声明的本地驱动器完整扫描能力
vet.ts 的 scanLocalComputer 函数实现对整个系统驱动器(C:/D:/E:/F: 或 /)的递归扫描(深度5层,最大10000文件),但 SKILL.md 完全未声明此功能
const SYSTEM_DRIVES = process.platform === "win32" ? ["C:", "D:", "E:", "F:"] : ["/"]
→ 在 SKILL.md 中明确声明扫描范围,或移除本地驱动器扫描代码,仅保留技能目录扫描
vet.ts:152
High
未声明的自动隔离/删除功能
quarantineFile 和 removeFile 函数可自动删除或隔离文件,但 SKILL.md 未声明此文件操作能力
async function quarantineFile(filePath: string): Promise<boolean>
→ 明确声明自动隔离/删除功能,并说明触发条件
vet.ts:179
Medium
深度递归扫描可能影响系统性能
scanLocalComputer 支持 depth > 5 递归扫描,最多 10000 个文件,在大驱动器上可能消耗大量资源
if (depth > 5 || results.filter(r => r.status === "danger").length >= 10) return
→ 考虑添加扫描限制说明或用户配置选项
vet.ts:159
Medium
config.autoRemove 与 whitelist 机制存在绕过风险
whitelist 在扫描循环中被检查,但如果 config.autoRemove=true,危险技能会被自动删除而不经过 whitelist 检查
if (status === "danger" && (autoMode || config.autoRemove))
→ 确保 whitelist 在所有自动操作前生效
vet.ts:246
ResourceDeclaredInferredStatusEvidence
Filesystem NONE WRITE ✗ Violation vet.ts:179-193 quarantineFile
Network NONE READ ✓ Aligned vet.ts:127 VirusTotal API
Environment NONE READ ✓ Aligned startup-scan.ts:24 Bun.env.HOME
Shell NONE NONE 无 shell 执行
2 findings
🔗
Medium External URL 外部 URL
https://virustotal.com
SKILL.md:46
🔗
Medium External URL 外部 URL
https://www.virustotal.com/api/v3/files/$
vet.ts:127

File Tree

3 files · 29.6 KB · 885 lines
TypeScript 2f · 768L Markdown 1f · 117L
├─ 📝 SKILL.md Markdown 117L · 3.0 KB
├─ 📜 startup-scan.ts TypeScript 284L · 10.0 KB
└─ 📜 vet.ts TypeScript 484L · 16.6 KB

Security Positives

✓ 代码结构清晰,使用 Bun 原生 API,无传统 child_process 调用
✓ 包含完善的高风险模式检测(eval、动态代码执行等)
✓ VirusTotal API 集成提供云端威胁情报
✓ 安全工具的合法用途,可检测其他技能风险