Skip to content

Gately v0.6.1 发布 ​

2026 年 10 月 30 日

这一版包含一个安全修复,建议所有开启了 Docker 管理并使用只读账号或只读 API 令牌的用户尽快升级。同时处理了 #35、#37、#38 与 #40,并新增安全策略。

下载 v0.6.1 · GitHub Release · 安全公告 GHSA-m6h7-mm5r-r53q

安全修复:Docker 只读权限泄露容器敏感信息 ​

v0.6.0.4 及更早版本中,只读账号和只有 docker:read 权限的 API 令牌可以通过 GET /api/docker/containers/{id} 读到容器环境变量、Command、Entrypoint 与启动参数的明文,进程列表也会显示完整命令行,常见的数据库密码、API 密钥因此可被只读身份获取。感谢 Yousef Alturki(@YousefAlturki)负责任地报告。

修复后:

  • 没有 Docker 写权限的身份查看容器时,环境变量只显示变量名,值、Command、Entrypoint、启动参数以及进程列表中的命令参数显示为 ********;镜像详情中的环境变量、Cmd、Entrypoint 与构建历史命令同样隐藏;
  • 明文改由需要 docker:write 的 GET /api/docker/containers/{id}/secrets 提供,管理员打开编辑表单时自动读取,提交仍为占位符的字段沿用原值;
  • 按容器名称或 ID 前缀调用接口时先解析为完整 ID,Gately 自身所在容器的保护不能再通过容器名绕过;编辑、升级重建时始终按完整 ID 处理旧容器,修复了按名称调用时清理阶段误删新容器、失败后无法回滚的问题;重建期间对该容器的启停与删除返回 409。

升级后请检查只读 API 令牌是否曾被分发给不受信任的一方,必要时轮换容器中的密钥。漏洞报告方式见 SECURITY.md,可以通过 GitHub 私密漏洞报告或邮件提交。

证书签发网络 ​

证书新增「网络」选项(#35):「仅 IPv4」或「仅 IPv6」让访问 CA、调用 DNS 服务商接口以及检查 TXT 记录生效都只使用对应地址族。主机有 IPv6 地址但 IPv6 实际不通时,原先的生效检查会在查询权威 DNS 服务器时超时导致签发失败,选择「仅 IPv4」即可。经 HTTPS_PROXY 等代理访问时,连接代理本身不受该选项限制。详见 SSL 证书 · 签发网络。

Docker 自身容器保护 ​

Docker 页面的升级、批量升级、编辑重建,以及对 Gately 所在 Compose 项目执行 up 或删除项目,都需要先停止旧容器,Gately 进程随之退出、重建无法完成,容器会停在停止状态(#38)。现在这些操作对自身被拒绝,界面按钮置灰并提示在宿主机上更新,批量升级跳过自身;重启 Gately 所在的 Compose 项目时自身放到最后重启。

通知与日志跟随界面语言 ​

服务端语言为「跟随系统」时,依次使用 GATELY_LANG、LANG 指定的语言;Docker、飞牛与 OpenWrt 上通常没有这两个变量,原先通知回落为英文(#40)。现在跟随管理员最近一次登录或在顶栏切换时的界面语言,只读账号登录不改变它。通知中的「来源」为程序生成的名称时会被翻译,用户填写的任务名保持原样;带 [warn] [auth] 这类前缀的英文日志不再中英混排。

设置默认站点 ​

Web 服务的监听在默认站点尚未配置时,卡片上新增「设置默认站点」按钮(#37),可以直接配置未匹配任何域名时的兜底处理。

升级提示 ​

  • Docker 拉取新镜像后重建容器;OpenWrt 覆盖安装新的 .apk / .ipk,需要 LuCI 页面时再安装同版本的 luci-app-gately;飞牛在应用中心手动安装新版 .fpk;其他部署方式可在「系统设置」中在线升级。

以 Apache-2.0 许可证开源发布。