安全决策报告

personal-voice-generator

SKILL.md 声明"本地完成不上传",但代码实际将用户音频文件上传至阿里云 OSS,存在文档欺骗行为

安装决策优先 来源: ClawHub 扫描时间: 5 天前
文件 4
IOC 9
越权项 1
发现 2
最直接的威胁证据

为什么得出这个结论

1/4 个维度触发
阻止
声明与实际能力

发现 1 项声明之外的能力或越权行为。

复核
隐藏执行与外联

提取到 9 个一般风险产物,需要结合上下文判断。

通过
攻击链与高危发现

没有形成明确的恶意路径。

复核
依赖与供应链卫生

发现 1 项需要关注的依赖或供应链线索。

风险分是怎么被拉高的

文档声明与实际行为不符 +25

SKILL.md 声明"声音样本与合成操作均在本地完成,不上传",但 upload_file() 函数将音频上传至阿里云 OSS

未声明的网络写入操作 +10

未在 permissions 中声明文件上传到外部 OSS 的 WRITE 操作

最关键的证据

中危 文档欺骗

文档声明"本地完成不上传"与实际行为不符

SKILL.md 明确声明"所有声音样本与合成操作均在本地完成,不上传、不存储、不泄露任何用户数据",但 upload_file() 函数(行52-75)会将用户提供的本地音频文件通过 multipart/form-data POST 到外部阿里云 OSS(kocgo-ai-sales-test.oss-cn-hangzhou.aliyuncs.com)。这是典型的阴影功能行为。

scripts/voice_clone.py:52
修改 SKILL.md 中 permissions.network 和 description,明确声明"需要将本地音频文件上传至语音合成服务提供商的 OSS 存储以获取可访问 URL"
低危 敏感访问

读取环境变量和 .env 文件获取 API Key

get_api_key() 函数(行24-45)遍历环境变量和 .env 文件读取 AI_ARTIST_TOKEN,这是获取凭证的正常方式,但未在 SKILL.md 中声明

scripts/voice_clone.py:24
在 permissions 中补充说明需要配置 API Key 环境变量

声明能力 vs 实际能力

网络访问 阻止
声明 READ
推断 WRITE
voice_clone.py:52 将本地文件 POST 到外部 OSS
文件系统 通过
声明 WRITE
推断 WRITE
voice_clone.py:180-198 下载音频到本地目录

可疑产物与外联

中危 外部 URL
https://ai.deepsop.com/prod-api

references/api.md:5

中危 外部 URL
https://ai.deepsop.com/login?source=2

references/api.md:10

中危 外部 URL
https://ai.deepsop.com/register?source=2

references/api.md:11

中危 外部 URL
https://kocgo-ai-sales-test.oss-cn-hangzhou.aliyuncs.com/timbre/100/1773663443610_c8733ade.mp3

references/api.md:53

中危 外部 URL
https://kocgo-ai-sales-test.oss-cn-hangzhou.aliyuncs.com/timbre/100/xxx.mp3

references/api.md:104

中危 外部 URL
https://kocgo-ai-sales-test.oss-cn-hangzhou.aliyuncs.com/timbre/100/1775109577087_813ce67c.mp3

references/api.md:137

中危 外部 URL
https://kocgo-ai-sales-test.oss-cn-hangzhou.aliyuncs.com/voice_clone/1/3c48a33a-8bdb-4272-81c4-b5607a19928c.mp3

references/api.md:186

中危 外部 URL
https://ai.deepsop.com/prod-api/system/fileUpload/upload

references/api.md:219

中危 外部 URL
https://kocgo-ai-sales-test.oss-cn-hangzhou.aliyuncs.com/material/100/6f5a70ba-cb60-4474-a579-ef5326037b5c.mp3

references/api.md:231

依赖与供应链

包名版本来源漏洞备注
requests * pip 无版本锁定但为通用HTTP库

文件构成

4 个文件 · 701 行
Python 1 个文件 · 392 行Markdown 3 个文件 · 309 行
需关注文件 · 2
scripts/voice_clone.py Python · 392 行
文档声明"本地完成不上传"与实际行为不符 · 读取环境变量和 .env 文件获取 API Key
references/api.md Markdown · 279 行
https://ai.deepsop.com/prod-api · https://ai.deepsop.com/login?source=2 · https://ai.deepsop.com/register?source=2 · https://kocgo-ai-sales-test.oss-cn-hangzhou.aliyuncs.com/timbre/100/1773663443610_c8733ade.mp3 · https://kocgo-ai-sales-test.oss-cn-hangzhou.aliyuncs.com/timbre/100/xxx.mp3 · https://kocgo-ai-sales-test.oss-cn-hangzhou.aliyuncs.com/timbre/100/1775109577087_813ce67c.mp3 · https://kocgo-ai-sales-test.oss-cn-hangzhou.aliyuncs.com/voice_clone/1/3c48a33a-8bdb-4272-81c4-b5607a19928c.mp3 · https://ai.deepsop.com/prod-api/system/fileUpload/upload · https://kocgo-ai-sales-test.oss-cn-hangzhou.aliyuncs.com/material/100/6f5a70ba-cb60-4474-a579-ef5326037b5c.mp3
其他文件 · README.md · SKILL.md

安全亮点

代码结构清晰,无混淆或隐蔽执行
API 调用基于标准 requests 库,无恶意依赖
文件下载功能符合"本地保存"声明
无反向 shell、凭证收割或其他主动攻击行为