Low Risk — Risk Score 15/100
Last scan:9 hr ago Rescan
15 /100
murasame-feishu-voice
飞书语音气泡技能:使用丛雨(Murasame)语音包发送语音气泡,并同步发送中文文本
飞书语音气泡技能,功能为发送语音消息和网络调用飞书 API,代码基本与声明一致;存在轻微的未声明外部脚本调用但用途合理。
Skill Namemurasame-feishu-voice
Duration40.0s
Enginepi
Safe to install
可安全使用。建议将 subprocess.Popen 调用的外部脚本路径声明于文档中,并考虑将状态文件路径暴露为可配置。

Findings 4 items

Severity Finding Location
Low
外部脚本调用未声明 Doc Mismatch
代码通过 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
Low
ffprobe subprocess 调用未声明 Doc Mismatch
代码使用 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
Low
调试文件写入残留 Sensitive Access
send_text.py 在未告知用户的情况下写入调试文件到用户主目录
Path(r"C:\Users\chenxun\.nanobot\workspace\murasame_text_debug.txt").write_text(...)
→ 移除或使用标准日志框架替代 debug 文件写入
scripts/send_text.py:54
Info
硬编码 Windows 路径 Priv Escalation
WORKSPACE 硬编码为 C:\Users\chenxun\.nanobot\workspace,仅限 Windows 环境,跨平台使用时需注意
WORKSPACE = Path(r"C:\Users\chenxun\.nanobot\workspace")
→ 暴露为环境变量 MURASAME_WORKSPACE
scripts/send_murasame_voice.py:22
ResourceDeclaredInferredStatusEvidence
Filesystem NONE WRITE ✓ Aligned scripts/send_murasame_voice.py:196-198 write_state()
Network READ READ ✓ Aligned scripts/send_murasame_voice.py:54 urllib Feishu API
Shell NONE READ ✓ Aligned scripts/send_murasame_voice.py:63 subprocess.run ffprobe
3 findings
🔗
Medium External URL 外部 URL
https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal
scripts/send_murasame_voice.py:54
🔗
Medium External URL 外部 URL
https://open.feishu.cn/open-apis/im/v1/files
scripts/send_murasame_voice.py:106
🔗
Medium External URL 外部 URL
https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id
scripts/send_murasame_voice.py:132

File Tree

4 files · 14.2 KB · 431 lines
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

Dependencies 2 items

PackageVersionSourceKnown VulnsNotes
ffmpeg N/A system No 系统级依赖,通过 subprocess 调用
ffprobe N/A system No 系统级依赖,通过 subprocess 调用

Security Positives

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