只对最新发布版本提供安全修复。项目处于活跃开发期,旧版本不单独回补补丁。
| 版本 | 支持状态 |
|---|---|
| 最新 release | ✅ 支持 |
| 更早的 release | ❌ 不支持(请先升级后复现) |
如果你正在使用的版本存在安全问题,请先升级到 最新版本 再确认是否仍然存在。
请勿通过公开 Issue 报告安全问题。
优先使用 GitHub 的私密报告通道:
- 打开 Security → Report a vulnerability
- 填写复现步骤、影响范围、受影响的版本,以及可行的修复建议
如果无法使用上述通道,请发邮件至 downvid@example.com,标题以 [SECURITY] 开头。
- 受影响版本(设置或关于页可见)与操作系统 / 架构
- 复现步骤,或最小可复现的输入(例如触发问题的链接形态)
- 影响评估:能读到什么、能改什么、是否需要用户交互
- 已知的缓解方式(如有)
- 真实用户的 Cookie、下载记录或任何个人信息
- 对第三方站点的攻击性测试结果
- 未公开的漏洞利用代码(先在报告里描述,确认后再讨论披露)
维护者会尽力在下列时间内响应(个人项目,时间为目标而非承诺):
| 阶段 | 目标时间 |
|---|---|
| 确认收到 | 3 个工作日内 |
| 初步评估(是否成立、严重程度) | 7 个工作日内 |
| 修复并发布 | 视严重程度而定,高危问题优先 |
评估结论与修复计划会在私密报告中同步。修复发布后,如你同意,会在 安全公告 与 CHANGELOG 中致谢。
采用协调披露:
- 修复版本发布前,请勿公开漏洞细节
- 修复发布后,双方协商披露时间,默认在发布后 7 天
- 若 90 天内未能修复,报告者可自行决定披露
DownVid 是本地桌面应用,没有自建服务端:所有解析与下载都在用户机器上完成,不上传任何用户数据。
- 本地权限提升:通过构造的输入(URL、文件名模板、字幕语言、Cookie 文件等)实现命令注入或路径穿越。特别注意:
yt-dlp与ffmpeg是以子进程方式调用的,任何能影响其参数或工作目录的输入都在范围内 - 任意文件写入 / 读取:例如通过文件名模板写到下载目录之外,或通过
--load-info-json缓存路径读取非预期文件 - 依赖供应链:
backend/internal/manifest/assets.gen.go中记录的下载地址与 SHA-256 被绕过或误导;依赖清单可被篡改导致安装恶意二进制 - 更新机制:能绕过
sha512校验、或让应用执行非预期的安装包 - 绑定边界突破:渲染进程通过 Wails 绑定触达主进程能力(如任意命令执行、任意路径读写)
- 敏感信息泄露:日志(
userData/downvid.log)中泄露 Cookie、令牌或本地路径
- 目标站点的反爬 / 风控机制:绕过某个站点的访问限制不属于本项目漏洞,请勿提交
- 用户主动导入的恶意 Cookie / 配置:用户自己提供的文件造成的问题
- 第三方工具自身的漏洞:
yt-dlp、ffmpeg、Wails 的问题请报给上游(如影响 DownVid 的既有防护,可在报告中说明) - 需要用户先关闭系统安全机制:例如已明确要求用户执行
xattr -d、关闭 Gatekeeper 或授予完全磁盘访问之后才成立的问题 - 缺少加固类问题:未启用代码签名 / 公证、缺少 CSP 等已知取舍(见下方"已知设计取舍")
- 拒绝服务:本地应用被自己的输入卡住(除非能造成持久化破坏)
这些是有意为之的取舍,已在 README 与文档中说明,不属于需要修复的漏洞:
- macOS 未做代码签名与公证:因为项目没有付费的 Apple Developer 证书。分发方式为 ad-hoc 签名 + 去除隔离属性(
xattr -c)。代价是首次打开需要用户手动允许;自更新由应用自己替换.app,失败回滚。 - 依赖不随安装包分发:
yt-dlp/ffmpeg由运行时下载到~/.downvid/runtime/bin/。因此校验和固定是安全前提,相关绕过属范围内问题。 - 自动读取浏览器 Cookie:仅在用户选择"自动"模式时发生,读取的是本机浏览器数据库,快照写在
userData/ytdlp-cookies/,不对外发送。 - 应用内更新直接读 GitHub Releases:安装包来自 GitHub,依赖
sha512/ GitHub 的digest校验保证完整性。
如果你对本地安全有更高要求,可以:
- 在「设置 → 运行依赖」中手动指定你自己编译的
yt-dlp/ffmpeg路径,避免应用下载 - 在「设置 → 运行依赖」中查看每个依赖的来源(系统安装 / DownVid 托管 / 手动指定)与版本,定期核对
- 使用「手动导入 cookies.txt」而非自动读取浏览器 Cookie
感谢你帮助让 DownVid 更安全。