安全决策报告
xzz-video-factory
合法视频生成流水线,存在API密钥硬编码和依赖版本未锁定问题,但无恶意行为证据
为什么得出这个结论
1/4 个维度触发 通过
声明与实际能力
声明资源与推断能力基本一致。
复核
隐藏执行与外联
提取到 1 个一般风险产物,需要结合上下文判断。
阻止
攻击链与高危发现
报告包含 0 步攻击链,另有 1 项高危或严重发现。
复核
依赖与供应链卫生
发现 8 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
硬编码API密钥 +15
tts_engine.py:18 包含明文MiniMax API密钥后备值
依赖版本未锁定 +8
所有依赖均无版本锁定,存在供应链风险
目录结构文档与实际不符 +2
SKILL.md声明pipeline/目录,实际为scripts/
最关键的证据
高危 凭证窃取
API密钥硬编码
tts_engine.py包含明文MiniMax API密钥后备值,若.env文件不存在则使用该密钥。密钥已公开暴露在代码中。
scripts/tts_engine.py:18 删除硬编码密钥,强制要求.env文件配置;或使用空字符串作为默认值并在缺失时抛出错误
中危 供应链
依赖版本未锁定
SKILL.md和references/config.md中声明的依赖均无版本锁定约束,pip install时可能安装不兼容版本或含漏洞版本。
SKILL.md:23 使用pip freeze生成requirements.txt并锁定版本;或使用poetry/PDM管理依赖
低危 文档欺骗
目录结构文档与实际不符
SKILL.md声称脚本位于pipeline/目录,但实际文件位于scripts/目录。不影响安全但影响可用性。
SKILL.md:1 统一文档与实际目录结构
低危 敏感访问
硬编码本地路径暴露用户环境
多个脚本包含硬编码的Windows用户目录路径(C:\Users\85064\Desktop\...),暴露开发者个人机器信息。
scripts/make_videos.py, scripts/analyze_ref.py:11-12, 28 使用相对路径或环境变量配置素材目录
声明能力 vs 实际能力
文件系统 通过
声明 WRITE
→ 推断 WRITE
多个脚本读写本地文件用于视频处理 网络访问 通过
声明 READ
→ 推断 READ
tts_engine.py:24 调用MiniMax API 命令执行 通过
声明 WRITE
→ 推断 WRITE
make_videos.py/analyze_ref.py 通过subprocess调用FFmpeg 环境变量 通过
声明 NONE
→ 推断 READ
tts_engine.py:13-16 读取MINIMAX_API_KEY等环境变量 可疑产物与外联
中危 外部 URL
https://api.minimax.chat/v1/t2a_v2 scripts/tts_engine.py:24
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| faster-whisper | * | pip | 否 | 无版本锁定 |
| aiohttp | * | pip | 否 | 无版本锁定 |
| pypinyin | * | pip | 否 | 无版本锁定 |
| jieba | * | pip | 否 | 无版本锁定 |
| pillow | * | pip | 否 | 无版本锁定 |
| numpy | * | pip | 否 | 无版本锁定 |
| edge-tts | * | pip | 否 | 无版本锁定 |
| python-dotenv | * | pip | 否 | 无版本锁定 |
文件构成
6 个文件 · 1364 行
Python 4 个文件 · 1127 行Markdown 2 个文件 · 237 行
需关注文件 · 2
SKILL.md 依赖版本未锁定 · 目录结构文档与实际不符
scripts/tts_engine.py API密钥硬编码 · https://api.minimax.chat/v1/t2a_v2
其他文件 · make_videos.py · analyze_ref.py · text_corrector.py · config.md
安全亮点
纯本地视频处理流水线,无数据外传行为
API密钥读取逻辑正确(优先.env,环境变量次之,硬编码仅作后备)
FFmpeg调用仅用于视频处理,范围合理
无Base64编码、eval()、subprocess管道等危险模式
未发现凭证收割、路径遍历或敏感文件访问