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 账号。本项目没有漏洞赏金。