可疑 — 风险评分 45/100
上次扫描:2 天前 重新扫描
45 /100
video-to-text
免费视频转文字 API - 使用免费 Whisper API 将视频/音频转为文字
The skill has significant doc-to-code mismatch with undeclared shell execution via execSync and undeclared filesystem writes, though the underlying functionality appears legitimate for video transcription.
技能名称video-to-text
分析耗时32.5s
引擎pi
谨慎使用
Update SKILL.md to declare subprocess/execSync usage and filesystem write operations. Consider rewriting tool.js to use safer child_process.spawn() instead of execSync with string joining.

安全发现 4 项

严重性 安全发现 位置
中危
Undeclared subprocess execution via execSync
tool.js uses child_process.execSync() to execute shell commands but SKILL.md only declares the tool interface without mentioning this implementation detail.
const output = execSync(args.join(' '), { encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, timeout: 300000 });
→ Declare shell:WRITE capability in _meta.json tools section, or refactor to use child_process.spawn() with explicit argument arrays to avoid string injection risk.
tool.js:24
中危
Command injection risk pattern
The execSync(args.join(' ')) pattern joins array elements into a single string before execution. While currently safe (URLs are passed as separate array items), this pattern is fragile and could become exploitable if parameters are modified.
const output = execSync(args.join(' '), {...});
→ Use child_process.spawn() with explicit argument array instead of execSync with string joining.
tool.js:24
低危
Undeclared filesystem write to temp directory
index.js downloads files to os.tmpdir() using fs.createWriteStream but this filesystem:WRITE usage is not declared in SKILL.md.
const tempFile = path.join(tmpDir, `video-to-text-${Date.now()}${ext}`);
→ Add filesystem:WRITE to declared capabilities in _meta.json or document this behavior in SKILL.md.
index.js:44
低危
Hidden credential parameter in Python script
scripts/video2text.py accepts --api-key parameter for AssemblyAI but this capability is not documented in SKILL.md.
p_conv.add_argument('--api-key', help='API Key (AssemblyAI)')
→ Document API key support in SKILL.md or remove if not needed.
scripts/video2text.py:64
资源类型声明权限推断权限状态证据
网络访问 READ READ ✓ 一致 SKILL.md mentions API calls to api.myshell.ai and api.openai.com
命令执行 NONE WRITE ✗ 越权 tool.js:24 - execSync(args.join(' '))
文件系统 NONE WRITE ✗ 越权 index.js:44 - fs.createWriteStream(tempFile), index.js:103 - fs.unlink()
环境变量 NONE NONE No os.environ access detected
4 项发现
🔗
中危 外部 URL 外部 URL
https://api.myshell.ai/v1/audio/transcriptions
SKILL.md:53
🔗
中危 外部 URL 外部 URL
https://api.assemblyai.com/v2/upload
scripts/video2text.py:49
🔗
中危 外部 URL 外部 URL
https://api.assemblyai.com/v2/transcript
scripts/video2text.py:58
🔗
中危 外部 URL 外部 URL
https://api.assemblyai.com/v2/transcript/
scripts/video2text.py:69

目录结构

6 文件 · 16.3 KB · 602 行
JavaScript 2f · 328L Python 1f · 141L JSON 2f · 70L Markdown 1f · 63L
├─ 📁 scripts
│ └─ 🐍 video2text.py Python 141L · 4.3 KB
├─ 📋 _meta.json JSON 50L · 1.3 KB
├─ 📜 index.js JavaScript 252L · 6.9 KB
├─ 📋 package.json JSON 20L · 414 B
├─ 📝 SKILL.md Markdown 63L · 1.7 KB
└─ 📜 tool.js JavaScript 76L · 1.7 KB

依赖分析 1 项

包名版本来源已知漏洞备注
node system system Required runtime, no vulnerability scanning applicable

安全亮点

✓ No evidence of credential exfiltration or data theft
✓ No base64-encoded payloads or obfuscated code
✓ No attempts to access ~/.ssh, ~/.aws, or other sensitive paths
✓ No curl|bash remote script execution
✓ No hidden instructions in comments or HTML
✓ Legitimate video transcription functionality with documented API endpoints
✓ Proper file cleanup after processing (fs.unlink)