Security Policy
August 15, 2026 · View on GitHub
威胁模型
本插件是运行在 DeepSeek Harness(DSH)进程内的工程工作流插件,具备 fs、subprocess、web、sandboxPolicy 等宿主服务能力。以下为已知面与缓解措施:
1. 数据外发(Privacy / Data Exfiltration)
| 面 | 说明 | 缓解 |
|---|---|---|
| 需求关键词外发 | 开启远程搜索时,reuse_survey 会把从需求中提取的关键词(assessWords,最多 8 个 ASCII/中文词)发往 GitHub/npm 检索 API | 政策文件 "remoteSearch": false 或工具参数 remoteSearch=false 只做本地调查;README 已提示企业默认关闭 |
| 本地代码进入模型上下文 | 本地扫描会把命中文件的路径、匹配行片段(≤160 字符/行)与系统画像摘要放入工具返回结果,随后进入当前 Agent/模型上下文 | 扫描范围受 root 参数限制;自动跳过 node_modules/.git/dist/vendor/tests/site-packages 等;单文件读取上限 256KB;本地源文件不会发送给 GitHub/npm 等任何检索平台 |
| Token 泄漏 | GITHUB_TOKEN 环境变量 | Authorization: Bearer 仅附加给 https://api.github.com/ 域名的请求,其他域名(npm 等)不携带;不要把 Token 写入政策文件或提交进 git |
2. 命令注入(Command Injection)
所有远程请求通过 subprocess.spawn 的参数数组调用 curl(不使用 shell 拼接);GitHub owner/repo 经 [^\w.-] 字符过滤;URL 经 encodeURIComponent 编码。没有发现可利用的命令注入路径。若未来扩展 -H/URL 拼接,需保持参数数组形式。
3. 恶意输入 / 解析健壮性
- 所有 JSON 响应解析均有 try/catch,失败返回错误对象而非抛异常
- 外部返回内容只做长度截断(README 6000 / 文件 8000 字符)后进入上下文
- 扫描对目录/文件读取异常逐个容错(跳过而非中断)
4. 权限最小化
- 默认
reuseMode: "ask":插件不自动决定复用,始终由用户确认 - 不拦截/不修改任何文件写入:复用与否完全由用户与模型协商
- 建议在企业环境将扫描根目录严格限定为当前仓库
支持的版本
| 版本 | 支持状态 |
|---|---|
| v4.2.x(main) | ✅ 支持 |
| v4.1.x | ✅ 支持 |
| v4.0.x | ⚠️ 仅安全修复 |
| v3.x 及更早 | ❌ 不再维护(升级到 v4.2) |
报告漏洞
请勿公开披露。通过 GitHub Issues(Security 标签)或邮件 victorzhong0110@gmail.com 联系维护者,描述:
- 影响面(数据外发/注入/DoS)
- 复现步骤
- 建议修复
我们会在确认后 7 天内回复,并在修复后按 90 天披露窗口公开。