发布日期: 2026 年 9 月 22 日
风险等级: 高危(High)
漏洞编号: CVE-2026-77560
CVSS: 约 8.1(High)
披露时间: 约 2026 年 9 月 22 日 01:18(CST;NVD 收录)
相关公告: NVD · CVE-2026-77560 · GHSA-328g-jx67-v94g · Release v5.1.2
一、漏洞概述
Tinyauth 是轻量级认证 / 授权服务,常以官方容器镜像部署,作为 Traefik / Nginx / Caddy 等反向代理前的 forward-auth 中间件,并支持按应用配置 users / groups / OAuth / LDAP / IP 等访问控制。
经官方确认,在 5.1.2 之前:
- 按 转发主机名 匹配 per-app ACL 时使用 大小写敏感 比较;
- 反向代理侧主机名路由通常按 大小写不敏感 处理;
- 已登录 的低权限用户可通过 改写主机名大小写,使 ACL 查找失败;
- 代码在查找失败时回落到 空 App,行为为 fail-open,从而 绕过 该应用本应生效的 users / groups / OAuth / LDAP / IP 等限制。
重要说明: 攻击者需 已通过 Tinyauth 登录(任意已认证用户即可尝试);未登录 用户仍须先过登录。暴露面主要在「同一 Tinyauth 实例后挂多应用,且启用了按应用允许列表」的场景。机密性 / 完整性影响高(可访问本应被挡在 per-app ACL 外的应用)。
二、漏洞状态
统计截止: 2026 年 9 月 22 日(UTC+8)
| 项目 | 状态 |
|---|---|
| 漏洞细节 | 已公开(GitHub Security Advisory / NVD) |
| 漏洞类型 | ACL 主机名大小写敏感 + 查找失败 fail-open → 越权访问 |
| 官方补丁 | 已发布(≥ v5.1.2;当前可见 v5.2.0 / v5 等亦含修复) |
| 公告受影响标注 | 公告侧曾写受影响 ≤ 5.0.7;实操以 升到 ≥ 5.1.2 为准 |
| 前置条件 | 已认证用户;多应用 + 启用 per-app ACL |
| 在野大规模利用 | 暂未发现公开大规模在野攻击报道 |
三、影响范围
1. 版本与发行形态
| 发行形态 | 受影响范围 | 修复线 |
|---|---|---|
| Tinyauth 二进制 / 源码 | 5.1.2 之前(公告亦提及 ≤ 5.0.7) | ≥ 5.1.2 |
官方镜像 ghcr.io/tinyauthapp/tinyauth | 镜像内版本 < 5.1.2 的 tag | v5.1.2 或更高(如 v5.2.0 / v5) |
2. 典型受影响场景
- 一套 Tinyauth 为多个后端应用做 forward-auth
- 为部分应用配置了 按应用的用户 / 组 / OAuth / LDAP / IP 限制
- 用户已能登录 Tinyauth(低权限账号即可尝试改 Host 大小写)
风险边界提示:
- 仅单应用、或未启用 per-app 允许列表时,本 CVE 的直接收益较低,仍建议升级。
- 修复后请确认 ACL 主机名比较与代理侧路由行为一致(大小写不敏感匹配等,以发行说明为准)。
四、修复建议
1. 升级至 Tinyauth ≥ v5.1.2(推荐)
| 形态 | 最低建议安全版本 |
|---|---|
| Tinyauth 发行版 | ≥ 5.1.2 |
容器镜像 ghcr.io/tinyauthapp/tinyauth | v5.1.2 或更高(推荐当前稳定线如 v5.2.0 / 浮动 v5,以站内 / GHCR 标签为准) |
官方容器镜像(GHCR): ghcr.io/tinyauthapp/tinyauth
坐标示例:ghcr.io/tinyauthapp/tinyauth:v5.1.2。官方镜像在 GHCR,无 Docker Hub 官方同名仓库作为本公告修复路径。
轩辕镜像: ghcr.io/tinyauthapp/tinyauth
拉取示例(将 *** 换成你在 个人中心 的 GHCR 专属域前缀;固定 ≥ v5.1.2):
bashdocker pull ***-ghcr.xuanyuan.run/tinyauthapp/tinyauth:v5.1.2
若使用 Compose,将 image: 改为上述坐标与安全 tag 后执行:
bashdocker compose pull docker compose up -d
2. 版本自查
bash# 以实际容器 / 二进制入口为准 docker exec <tinyauth-container> tinyauth --version # 或查看正在运行的镜像 tag docker inspect --format '{{.Config.Image}}' <tinyauth-container>
确认版本 ≥ 5.1.2 后滚动重启 Tinyauth,并抽测:对受保护应用改用不同大小写 Host,确认 ACL 不再 fail-open。
五、临时缓解措施
在无法立即完成升级前,建议:
-
收紧可登录账号
减少低权限账号数量;对异常 Host 大小写变体访问做日志告警。 -
代理层规范化 Host
在反向代理统一将 Host 规范为小写再转发(可降低部分利用空间,不能替代 升级,且需确认不破坏既有 TLS / 路由)。 -
临时合并高敏应用的暴露策略
对必须隔离的应用考虑独立认证入口或网络隔离(运维成本较高,仅作过渡)。 -
仍优先安排正式升级
根因在 ACL 匹配与 fail-open 回落;临时措施无法从产品逻辑上彻底关闭该路径。
六、与轩辕镜像用户的相关说明
轩辕镜像提供的是 镜像加速与拉取服务,不替代 你对 Tinyauth 版本的升级与 per-app ACL 复核。
- 可通过轩辕加速拉取 GHCR 上的
tinyauthapp/tinyauth,站内页:ghcr.io/tinyauthapp/tinyauth;命令形如***-ghcr.xuanyuan.run/tinyauthapp/tinyauth:v5.1.2(***为你的专属前缀)。 - 加速拉取 不会自动变成安全版本,须固定 ≥ v5.1.2。
- GHCR 专属域配置见:GHCR 拉取教程;排错见:镜像拉取 FAQ。
七、参考链接
- NVD:CVE-2026-77560
- GitHub Security Advisory:GHSA-328g-jx67-v94g
- 修复版本 Release:v5.1.2
- 轩辕站内镜像页:ghcr.io/tinyauthapp/tinyauth
- 项目主页:https://github.com/tinyauthapp/tinyauth
轩辕镜像安全团队
2026 年 9 月 22 日
评论交流
免责声明
本博客文章所提供的内容、技术方案、配置示例及部署指南等信息,仅供学习交流和技术参考使用。文章内容基于发布时的技术环境和版本信息编写,可能因时间推移、技术更新或环境差异而存在不适用的情况。
用户在参考本博客内容进行部署操作前,应当充分了解相关技术风险,并建议在测试环境中进行充分验证和测试,确认无误后再考虑在生产环境中使用。生产环境部署前,请务必进行数据备份,并制定相应的回滚方案。
用户因使用本博客内容进行部署操作而产生的任何损失、数据丢失、系统故障、安全风险或其他问题,均由用户自行承担全部责任。轩辕镜像官方不对因使用本博客内容而产生的任何直接或间接损失承担责任。
本免责声明的最终解释权归轩辕镜像官方所有。
