【漏洞预警】Trigger.dev 自托管 Compose 默认密钥可伪造登录(CVE-2026-114087)
2026/10/21Docker漏洞预警轩辕镜像团队约 10 分钟阅读

【漏洞预警】Trigger.dev 自托管 Compose 默认密钥可伪造登录(CVE-2026-114087)

Trigger.dev 4.5.6 之前的官方 Docker Compose 在 hosting/docker/.env.example 中带有公开的默认密钥。攻击者可伪造 magic-link 令牌,以任意邮箱登录,并在基础设施网络上访问仍使用默认凭据的数据库(CVE-2026-114087,CVSS 4.0 为 9.2,CVSS 3.1 为 8.1)。请升到 v4.5.6,并用 generate-secrets.sh 重新生成密钥。

本文使用的 Docker 镜像

发布日期: 2026 年 10 月 21 日
风险等级: 严重(Critical,CVSS 4.0);NVD CVSS 3.1 为高危 8.1
漏洞编号: CVE-2026-114087
涉及镜像: ghcr.io/triggerdotdev/trigger.dev — 轩辕镜像 · GHCR · ghcr.io/triggerdotdev/supervisor — GHCR
CVSS: 9.2(Critical,CVSS 4.0);CVSS 3.1 为 8.1(High)
披露时间: 2026 年 10 月 21 日
相关公告: GHSA-pqxw-g93w-hj9x


一、漏洞概述

Trigger.dev 是可以自托管的任务与工作流平台。官方 Compose 把 webapp 放在 ghcr.io/triggerdotdev/trigger.dev,把 worker 放在 ghcr.io/triggerdotdev/supervisor。标签由 TRIGGER_IMAGE_TAG 决定,未设置时回落到 latest。

4.5.6 之前,hosting/docker/.env.example 写有公开的默认密钥,其中包含 MAGIC_LINK_SECRET。把示例文件直接用于生产、又没有轮换的实例,攻击者可以伪造 magic-link 令牌,用任意邮箱登录。登录之后,还能在基础设施网络上访问仍使用默认凭据的 Postgres、Redis 和 ClickHouse。

后果包括租户数据、API Key、可被解密的 ENCRYPTION_KEY、跨租户访问,以及向捆绑的镜像仓库推送被篡改的镜像、改动队列。


二、漏洞状态

统计截止: 2026 年 10 月 21 日(UTC+8)

项目状态
漏洞细节已公开(厂商 GHSA、NVD)
漏洞类型自托管 Compose 使用公开默认密钥,可伪造登录(CWE-653)
受影响版本Trigger.dev 低于 4.5.6 的官方 Docker Compose(webapp 与 worker)
官方补丁≥ 4.5.6。GHCR 上 trigger.dev 与 supervisor 均已有标签 v4.5.6
在野利用未见确认利用
CISA KEV未列入

三、影响范围

1. 版本与发行形态

发行形态受影响范围修复标签
官方 Compose 的 webappghcr.io/triggerdotdev/trigger.dev,低于 v4.5.6v4.5.6
官方 Compose 的 workerghcr.io/triggerdotdev/supervisor,低于 v4.5.6v4.5.6
未改过的 .env.example默认密钥仍是公开值用 generate-secrets.sh 重新生成,不要保留示例值

4.5.6 的发行说明写明:新的自托管部署不再附带共享默认凭据,全新安装会自己生成。已经在用以前公开默认值的实例,必须先写成自己的密钥再升级;否则需要临时打开迁移开关才能继续启动。

Docker Hub 上的 triggerdotdev/trigger.dev 没有 v4.5.6,最后可见标签停在 2023 年的 main。不要从那里拉取来修这条公告。supervisor 没有 Hub 仓库。

2. 典型受影响场景

  • 生产环境直接使用 hosting/docker/.env.example 里的默认密钥,尤其是 MAGIC_LINK_SECRET
  • webapp 可以从不可信网络访问
  • Postgres、Redis、ClickHouse 仍使用 Compose 示例中的默认凭据,并且与 webapp 在同一套基础设施网络里

已经换成独立随机密钥的实例,不走这条伪造登录路径。镜像低于 4.5.6 时,仍应升级。


四、修复建议

1. 升级到 v4.5.6,并更换密钥(推荐)

先为现有环境生成新密钥,确认不再使用示例默认值,再把 webapp 和 worker 都固定到 v4.5.6。

*** 是个人中心的专属域前缀,拉取前换成自己的前缀。这个域名不要用 GitHub PAT 执行 docker login。

bash
docker pull ***-ghcr.xuanyuan.run/triggerdotdev/trigger.dev:v4.5.6
docker pull ghcr.io/triggerdotdev/supervisor:v4.5.6

worker 的轩辕站内页当前没有可用详情,supervisor 从 GHCR 拉取。把 Compose 里的 TRIGGER_IMAGE_TAG 设为 v4.5.6,不要继续用未固定的 latest 表示已经修好。

密钥脚本:generate-secrets.sh。发行说明:v4.5.6。

若实例仍是以前公开的默认值,升级前先写入独立密钥。需要先把服务拉起来再迁的,可以临时设置 ALLOW_INSECURE_DEFAULT_SECRETS=true,迁完立即关掉。这个开关只为了过渡,不能当作修复。

线上轮换要先备份。强制轮换可能让已有加密数据、会话和卷无法继续使用。

2. 密钥已经暴露过时

按登录和数据库都可能被使用过处理:轮换 MAGIC_LINK_SECRET、ENCRYPTION_KEY、数据库口令和 API Key,检查捆绑镜像仓库里是否有未授权推送,再用新密钥重建。


五、临时缓解措施

在升到 v4.5.6 之前:

  1. 不要把 .env.example 的默认值用于任何可访问环境
    公开的 MAGIC_LINK_SECRET 可以伪造登录。

  2. 先收紧 webapp 的入口,并改掉数据库默认凭据
    伪造登录之后,默认同网络里的 Postgres、Redis、ClickHouse 会扩大影响。

  3. 不要把 latest 或 Docker Hub 上的旧 main 标签当成 4.5.6
    修复标签是 GHCR 上的 v4.5.6。webapp 与 supervisor 要一起换。


六、与轩辕镜像用户的相关说明

轩辕镜像提供的是镜像加速与拉取服务,不替代 Trigger.dev 的版本修复。只换镜像、不换密钥,默认密钥仍然有效。


七、参考链接


轩辕镜像安全团队
2026 年 10 月 21 日

评论交流

加载中

免责声明

本博客文章所提供的内容、技术方案、配置示例及部署指南等信息,仅供学习交流和技术参考使用。文章内容基于发布时的技术环境和版本信息编写,可能因时间推移、技术更新或环境差异而存在不适用的情况。

用户在参考本博客内容进行部署操作前,应当充分了解相关技术风险,并建议在测试环境中进行充分验证和测试,确认无误后再考虑在生产环境中使用。生产环境部署前,请务必进行数据备份,并制定相应的回滚方案。

用户因使用本博客内容进行部署操作而产生的任何损失、数据丢失、系统故障、安全风险或其他问题,均由用户自行承担全部责任。轩辕镜像官方不对因使用本博客内容而产生的任何直接或间接损失承担责任。

本免责声明的最终解释权归轩辕镜像官方所有。

最后更新:2026/10/21
官方技术交流群:问题咨询请:提交工单
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持99.95% SLA 保障付费会员免广告