低风险 — 风险评分 15/100
上次扫描:10 小时前 重新扫描
15 /100
murasame-feishu-voice
飞书语音气泡技能:使用丛雨(Murasame)语音包发送语音气泡,并同步发送中文文本
飞书语音气泡技能,功能为发送语音消息和网络调用飞书 API,代码基本与声明一致;存在轻微的未声明外部脚本调用但用途合理。
技能名称murasame-feishu-voice
分析耗时40.0s
引擎pi
可以安装
可安全使用。建议将 subprocess.Popen 调用的外部脚本路径声明于文档中,并考虑将状态文件路径暴露为可配置。

安全发现 4 项

严重性 安全发现 位置
低危
外部脚本调用未声明 文档欺骗
代码通过 subprocess.Popen 调用父级目录的 feishu-voice/scripts/send_voice_file.py(来自其他包),但 SKILL.md 中完全未提及此依赖路径。调用链:send_murasame_voice.py → send_voice_file.py
sender_script = Path(__file__).parent.parent.parent / "feishu-voice" / "scripts" / "send_voice_file.py"
→ 在 SKILL.md 中声明依赖上层 feishu-voice 包的 send_voice_file.py,或将其内联到当前包内
scripts/send_murasame_voice.py:243
低危
ffprobe subprocess 调用未声明 文档欺骗
代码使用 subprocess.run 调用 ffprobe 获取音频时长,SKILL.md 仅提及需要 ffmpeg/ffprobe 但未说明通过 shell 执行
res = subprocess.run(cmd, capture_output=True, text=True, env=env)
→ 在 SKILL.md 依赖说明中补充 subprocess 调用 ffprobe 的信息
scripts/send_murasame_voice.py:63
低危
调试文件写入残留 敏感访问
send_text.py 在未告知用户的情况下写入调试文件到用户主目录
Path(r"C:\Users\chenxun\.nanobot\workspace\murasame_text_debug.txt").write_text(...)
→ 移除或使用标准日志框架替代 debug 文件写入
scripts/send_text.py:54
提示
硬编码 Windows 路径 权限提升
WORKSPACE 硬编码为 C:\Users\chenxun\.nanobot\workspace,仅限 Windows 环境,跨平台使用时需注意
WORKSPACE = Path(r"C:\Users\chenxun\.nanobot\workspace")
→ 暴露为环境变量 MURASAME_WORKSPACE
scripts/send_murasame_voice.py:22
资源类型声明权限推断权限状态证据
文件系统 NONE WRITE ✓ 一致 scripts/send_murasame_voice.py:196-198 write_state()
网络访问 READ READ ✓ 一致 scripts/send_murasame_voice.py:54 urllib Feishu API
命令执行 NONE READ ✓ 一致 scripts/send_murasame_voice.py:63 subprocess.run ffprobe
3 项发现
🔗
中危 外部 URL 外部 URL
https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal
scripts/send_murasame_voice.py:54
🔗
中危 外部 URL 外部 URL
https://open.feishu.cn/open-apis/im/v1/files
scripts/send_murasame_voice.py:106
🔗
中危 外部 URL 外部 URL
https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id
scripts/send_murasame_voice.py:132

目录结构

4 文件 · 14.2 KB · 431 行
Python 2f · 360L Markdown 1f · 55L JSON 1f · 16L
├─ 📁 references
│ └─ 📋 mapping.json JSON 16L · 690 B
├─ 📁 scripts
│ ├─ 🐍 send_murasame_voice.py Python 275L · 8.7 KB
│ └─ 🐍 send_text.py Python 85L · 2.7 KB
└─ 📝 SKILL.md Markdown 55L · 2.2 KB

依赖分析 2 项

包名版本来源已知漏洞备注
ffmpeg N/A system 系统级依赖,通过 subprocess 调用
ffprobe N/A system 系统级依赖,通过 subprocess 调用

安全亮点

✓ 凭证(FEISHU_APP_ID/SECRET)仅用于飞书 API 调用,无外传行为
✓ 语音发送逻辑清晰,标签映射机制合理
✓ 开关控制通过状态文件实现,无需每次传递参数
✓ 代码结构良好,函数职责单一
✓ mapping.json 分离配置,便于扩展标签