Skip to content

Security: Downvid/downvid

SECURITY.md

安全政策

支持的版本

只对最新发布版本提供安全修复。项目处于活跃开发期,旧版本不单独回补补丁。

版本 支持状态
最新 release ✅ 支持
更早的 release ❌ 不支持(请先升级后复现)

如果你正在使用的版本存在安全问题,请先升级到 最新版本 再确认是否仍然存在。

报告漏洞

请勿通过公开 Issue 报告安全问题。

优先使用 GitHub 的私密报告通道:

  1. 打开 Security → Report a vulnerability
  2. 填写复现步骤、影响范围、受影响的版本,以及可行的修复建议

如果无法使用上述通道,请发邮件至 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 与文档中说明,不属于需要修复的漏洞:

  1. macOS 未做代码签名与公证:因为项目没有付费的 Apple Developer 证书。分发方式为 ad-hoc 签名 + 去除隔离属性(xattr -c)。代价是首次打开需要用户手动允许;自更新由应用自己替换 .app,失败回滚。
  2. 依赖不随安装包分发:yt-dlp / ffmpeg 由运行时下载到 ~/.downvid/runtime/bin/。因此校验和固定是安全前提,相关绕过属范围内问题。
  3. 自动读取浏览器 Cookie:仅在用户选择"自动"模式时发生,读取的是本机浏览器数据库,快照写在 userData/ytdlp-cookies/,不对外发送。
  4. 应用内更新直接读 GitHub Releases:安装包来自 GitHub,依赖 sha512 / GitHub 的 digest 校验保证完整性。

加固建议

如果你对本地安全有更高要求,可以:

  • 在「设置 → 运行依赖」中手动指定你自己编译的 yt-dlp / ffmpeg 路径,避免应用下载
  • 在「设置 → 运行依赖」中查看每个依赖的来源(系统安装 / DownVid 托管 / 手动指定)与版本,定期核对
  • 使用「手动导入 cookies.txt」而非自动读取浏览器 Cookie

感谢你帮助让 DownVid 更安全。

There aren't any published security advisories