Skip to content

Security: babywbx/Kiln

.github/SECURITY.md

安全策略

English

Kiln 是一个对外提供服务的网关。它持有登录口令散列、会话签名私钥、管理 API Token 与播放密钥,按配置解密上游媒体,并代表部署方发起出站请求。这些位置上的缺陷会直接影响运行它的人,请按下面的流程处理。

支持的版本

版本 状态
1.1.x 接受安全报告
1.0.x 接受安全报告

两个版本系列均接受报告;每个列出的版本系列,其最新补丁版本会收到修复。报告前请先升级到对应系列的最新版本,确认问题仍然存在。

报告方式

请不要用公开 issue 报告安全问题。 公开 issue 对所有人可见,等于在补丁发布之前公布一个可被利用的缺陷。

请提交私密安全公告:创建安全公告。只有维护者能看到内容,讨论与补丁都在私密分支中进行,直到公告发布。

一份可以直接开工的报告通常包含:

  • 受影响的版本与变体,即 Lite、Core 或 Full
  • 部署形态:二进制、Docker 或 Windows 服务,以及服务是否暴露在公网
  • 相关配置片段,请先移除口令、Token、播放密钥与解密密钥
  • 复现步骤,能给出最小复现请求或最小配置最好
  • 你判断的影响,例如绕过鉴权、读取任意文件、越权访问管理 API

响应预期

本项目由一个人维护。下面是尽力而为的目标,不是服务等级协议:

阶段 目标
确认收到 5 个工作日内
初步定性与严重程度评估 10 个工作日内
修复与发布 视复杂度而定,高危优先

超过时限没有回应时,请在公告里追加一条评论提醒。

范围

下列情况属于安全问题:

  • 绕过登录、会话校验、管理 API Token 或播放密钥的鉴权
  • 播放密钥越权,例如用受限密钥访问其范围之外的频道
  • 路径穿越、任意文件读写,或访问 data_dir 之外的内容
  • 通过出站代理或频道源地址构造的服务端请求伪造,包括访问云元数据端点与内网地址
  • 泄露解密密钥、会话签名私钥、口令散列或 Token 明文
  • 管理控制台的跨站脚本与跨站请求伪造
  • 由远端输入触发的崩溃、无界内存增长或拒绝服务

下列情况不按安全问题处理,请开普通 issue:

  • 把管理接口或 pprof 直接暴露到公网所导致的后果
  • 使用弱口令、复用 Token,或把配置文件设成全局可读
  • 上游站点自身的问题,或上游返回内容导致的播放失败
  • 需要本地 root 权限,或已经取得 data_dir 写权限才能利用的问题
  • 希望增加某项加固能力的功能建议,例如更细粒度的限流维度
  • 依赖项中 Kiln 并未触及的代码路径上的已公开漏洞,可以直接开 issue 讨论升级

披露

采用协调披露。补丁发布后会公开安全公告,说明影响范围与修复版本。除非你要求匿名,公告会署上你的名字或 GitHub 账号。本项目没有漏洞赏金。

加固

部署前建议先读文档站的鉴权与凭据运维两章。

There aren't any published security advisories