2026年10月21日,GitLab社区版(GitLab Community Edition,CE)和GitLab企业版(GitLab Enterprise Edition,EE)发布了 19.5.1、19.4.3、19.3.6、19.2.9、19.1.9、19.0.10、18.11.13 版本。这些版本包含重要的缺陷和安全修复,强烈建议所有自托管 GitLab 安装立即升级到其中一个版本。GitLab.com 已运行修补后的版本;运行 19.3.5-internal0 和 19.4.2-internal0 或更高版本的 GitLab Dedicated 租户已包含这些修复,无需采取行动。
正文
2026 年 10 月 21 日,GitLab 发布了 Community Edition(CE)和 Enterprise Edition(EE)的 19.5.1、19.4.3、19.3.6、19.2.9、19.1.9、19.0.10、18.11.13 版本。
这些版本包含重要的错误修复和安全修复,强烈建议所有自管理 GitLab 安装立即升级到其中一个版本。GitLab.com 已在运行已修补版本。运行 19.3.5-internal0 和 19.4.2-internal0 或更高版本的 GitLab Dedicated 租户已包含这些修复,无需采取操作。
GitLab 通过补丁发布修复漏洞。补丁发布分两类:计划发布和针对高危漏洞的临时关键补丁。计划发布每两个月一次,在第二个和第四个星期三发布。更多信息请访问发布手册和安全常见问题。所有 GitLab 发布博客见此处。
对于安全修复,详细说明每个漏洞的问题会在修复该漏洞的发布 90 天后,在议题跟踪器上公开。
GitLab 致力于确保面向客户或托管客户数据的所有方面都达到最高安全标准。为保持良好的安全卫生,强烈建议所有客户升级到其所支持版本的最新补丁发布。更多保护实例的最佳实践见博客文章保护 GitLab 实例的最佳实践。
建议操作
我们强烈建议所有运行受下述问题影响版本的安装尽快升级到最新版本。
若未提及具体部署类型(omnibus、源代码、helm chart 等),则表示所有类型均受影响。
安全修复
安全修复一览表
| 标题 | 严重程度 | | --- | --- | | 正则表达式编译器中的整数溢出问题影响 GitLab CE/EE | 严重 | | OmniAuth 到 LDAP 自动关联邮箱查询中的身份验证不当问题影响 GitLab CE/EE | 高 | | OAuth/OIDC 发现端点中的缓存投毒问题影响 GitLab CE/EE | 高 | | GraphQL 工作项邮箱地址字段的访问控制不当问题影响 GitLab CE/EE | 中 | | 全实例 SAML/LDAP 成员锁定执行不完整,允许 GitLab EE 中未经授权添加成员 | 中 | | 内部响应头中的内部凭据暴露问题影响 GitLab CE/EE | 中 | | 群组里程碑 API 中通过用户可控键绕过授权的问题影响 GitLab CE/EE | 中 | | AI Gateway 功能启用头中使用可信度较低来源的问题影响 GitLab EE | 中 | | 合并请求标题渲染中使用含敏感信息缓存的问题影响 GitLab CE/EE | 低 | | 合并请求审批策略执行中的访问控制不当问题影响 GitLab EE | 低 | | 安全发现中抛出异常处理不当的问题影响 GitLab EE | 低 | | 群组 Duo 管理员对 Amazon Q 设置锁定执行中的访问控制不当问题影响 GitLab EE | 低 |
CVE-2026-110264 - 正则表达式编译器中的整数溢出问题影响 GitLab CE/EE
GitLab 已修复一个问题:在特定条件下,由于编译特制正则表达式时发生整数溢出,未认证用户可能在 GitLab 服务器上执行任意代码。除标准补丁发布外,我们还将该修复向后移植到 GitLab CE/EE 18.11.13、19.0.10、19.1.9 和 19.2.9 版本。
受影响版本: GitLab CE/EE:7.0 至 18.11.13 之前的所有版本,19.0 至 19.0.10 之前,19.1 至 19.1.9 之前,19.2 至 19.2.9 之前,19.3 至 19.3.6 之前,19.4 至 19.4.3 之前,19.5 至 19.5.1 之前。
CVSS 10.0(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H)
感谢 joaxcar 通过 HackerOne 漏洞赏金计划报告此漏洞。
检测 CVE-2026-110264 利用尝试
GitLab 安全团队发布了两个威胁检测,以支持自管理实例客户,如下所示。GitLab 管理的基础设施(包括 GitLab.com 和 GitLab Dedicated)已保持修补状态。
CVE-2026-15723 - OmniAuth 到 LDAP 自动关联邮箱查询中的身份验证不当问题影响 GitLab CE/EE
GitLab 已修复一个问题:当 OmniAuth SAML 和 LDAP 自动关联同时启用时,由于 OmniAuth 身份关联期间使用的 LDAP 邮箱查询路径中对输入清理不当,已认证用户可能在目标用户无任何交互的情况下接管已有的 LDAP 支持账户。
受影响版本: GitLab CE/EE:10.1 至 19.3.6 之前的所有版本,19.4 至 19.4.3 之前,19.5 至 19.5.1 之前。
CVSS 8.2(CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N)
感谢 stealthy 通过 HackerOne 漏洞赏金计划报告此漏洞。
CVE-2026-112212 - OAuth/OIDC 发现端点中的缓存投毒问题影响 GitLab CE/EE
GitLab 已修复一个问题:在特定条件下,由于在缓存的发现响应中构造端点 URL 时不当信任用户提供的值,未认证用户可能投毒共享缓存的 OAuth/OIDC 发现文档,将某些流程重定向到外部控制的服务器。
受影响版本: GitLab CE/EE:18.3 至 19.3.6 之前的所有版本,19.4 至 19.4.3 之前,19.5 至 19.5.1 之前。
CVSS 7.5(CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:L)
此漏洞由 GitLab 团队成员 Peter Arts 内部发现。
CVE-2026-12664 - GraphQL 工作项邮箱地址字段的访问控制不当问题影响 GitLab CE/EE
GitLab 已修复一个问题:在特定条件下,由于某个 GraphQL 字段上的作用域执行不足,拥有 read_api 作用域令牌的已认证用户可能获取项目的传入邮箱地址并创建工作项,从而绕过令牌限制。
受影响版本: GitLab CE/EE:18.2 至 19.3.6 之前的所有版本,19.4 至 19.4.3 之前,19.5 至 19.5.1 之前。
CVSS 6.8(CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N)
感谢 go7f0 通过 HackerOne 漏洞赏金计划报告此漏洞。
CVE-2026-16255 - 全实例 SAML/LDAP 成员锁定执行不完整,允许 GitLab EE 中未经授权添加成员
GitLab 已修复一个问题:当启用全实例 SAML 或 LDAP 成员锁定时,由于在锁定启用前创建的请求上成员锁定执行不完整,已认证用户可能在身份提供者控制之外授予或接受项目和群组成员资格。
受影响版本: GitLab EE:12.0 至 19.3.6 之前的所有版本,19.4 至 19.4.3 之前,19.5 至 19.5.1 之前。
CVSS 5.9(CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N)
感谢 3nvz 通过 HackerOne 漏洞赏金计划报告此漏洞。
GitLab 已修复一个问题:在特定条件下,由于内部响应头过滤不当,未认证用户可能获取敏感的内部服务器凭据。
受影响版本: GitLab CE/EE:17.6.5 至 19.3.6 之前的所有版本,19.4 至 19.4.3 之前,19.5 至 19.5.1 之前。
CVSS 4.3(CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N)
感谢 altair00 通过 HackerOne 漏洞赏金计划报告此漏洞。
CVE-2026-13319 - 群组里程碑 API 中通过用户可控键绕过授权的问题影响 GitLab CE/EE
GitLab 已修复一个问题:由于群组里程碑 API 中用户提供项目过滤参数缺少授权检查,已认证用户可能在无任何项目成员资格的情况下,读取实例中任意私有项目的里程碑元数据,包括标题、描述和完整项目路径。
受影响版本: GitLab CE/EE:15.10 至 19.3.6 之前的所有版本,19.4 至 19.4.3 之前,19.5 至 19.5.1 之前。
CVSS 4.3(CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N)
感谢 a0xnirudh 通过 HackerOne 漏洞赏金计划报告此漏洞。
GitLab 已修复一个问题:在特定条件下,由于计费资格检查中的服务器端验证不足,已认证用户可能在没有有效订阅的情况下访问付费 AI 功能。
受影响版本: GitLab EE:17.8 至 19.3.6 之前的所有版本,19.4 至 19.4.3 之前,19.5 至 19.5.1 之前。
CVSS 4.3(CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N)
此漏洞由 GitLab 团队成员 Halil Coban 内部发现。
CVE-2026-105711 - 合并请求标题渲染中使用含敏感信息缓存的问题影响 GitLab CE/EE
GitLab 已修复一个问题:当公共项目中的合并请求引用了私有项目中的机密议题时,由于与查看者无关的片段缓存键错误地在所有用户之间共享了按用户编辑过的渲染内容,无任何项目成员资格的已认证用户可能读取该机密议题的标题。
受影响版本: GitLab CE/EE:15.0 至 19.3.6 之前的所有版本,19.4 至 19.4.3 之前,19.5 至 19.5.1 之前。
CVSS 3.5(CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:N)
感谢 20kilograma 通过 HackerOne 漏洞赏金计划报告此漏洞。
CVE-2026-14288 - 合并请求审批策略执行中的访问控制不当问题影响 GitLab EE
GitLab 已修复一个问题:在特定条件下,由于审批规则同步期间的访问控制不当,已认证用户可能绕过受保护分支上必需的合并请求审批策略。
受影响版本: GitLab EE:17.4 至 19.3.6 之前的所有版本,19.4 至 19.4.3 之前,19.5 至 19.5.1 之前。
CVSS 3.1(CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N)
感谢 3nvz 通过 HackerOne 漏洞赏金计划报告此漏洞。
CVE-2026-112326 - 安全发现中抛出异常时清理不当的问题影响 GitLab EE
GitLab 已修复一个问题:在特定条件下,由于错误处理期间清理逻辑未能区分已有记录与新创建记录,拥有只读权限的已认证用户可能永久删除已有的漏洞记录。
受影响版本: GitLab EE:17.8 至 19.3.6 之前的所有版本,19.4 至 19.4.3 之前,19.5 至 19.5.1 之前。
CVSS 3.1(CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N)
此漏洞由 GitLab 团队成员 Gregory Havenga 内部发现。
CVE-2026-103515 - 群组 Duo 管理员对 Amazon Q 设置锁定执行中的访问控制不当问题影响 GitLab EE
GitLab 已修复一个问题:当实例管理员锁定某群组的 Duo 可用性时,由于管理员锁定执行控制的粒度不足,拥有群组 Owner 权限的已认证用户可能为该群组及其下级项目重新启用向第三方服务的 AI 支持数据外流。
受影响版本: GitLab EE:19.2 至 19.3.6 之前的所有版本,19.4 至 19.4.3 之前,19.5 至 19.5.1 之前。
CVSS 2.7(CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:N)
感谢 3nvz 通过 HackerOne 漏洞赏金计划报告此漏洞。
错误修复
19.5.1
- 将 19.5 文档页面从稳定分支缺失的部分向后移植
- 将 19.5 发布说明向后移植到 19-5-stable-ee
- 向后移植“在轮盘实验默认规范中忽略 CI 变量”
- 向后移植“隔离范围选择器搜索查询规范”
- 将 GitLab Runner 19.5 发布文章向后移植到最新稳定分支
- 将 CNG helm chart 引用升级到 v10.5.0
- 向后移植“为 Duo CLI 设置 GITLABBINDIR 并将工作流镜像升级到 v0.0.23”到 19.5
- 向后移植“从内部 Orbit 项目信息返回 repository_storage”到 19.5
- 向后移植“Workhorse:当 Gitaly 以 ResourceExhausted 拒绝 GetArchive 时返回 429”
- 向后移植“为流水线执行策略流水线分配流水线 IID”
- 向后移植“将提交列表浏览按钮链接到当前文件路径”到 19.5
- 向后移植“备份仓库时仅加载所需的片段列”
- [19.5] 将 gitlab-markup 更新到 2.2.0,rdoc 更新到 8.1.0
- 向后移植“在 .browserslistrc 中固定 Baseline 日期”到 19.5
- 向后移植:按请求缓存基础流程目录项
- 修复工作项变更类型和子里程碑与 features 字段的问题
- 向后移植“引发 Rouge Fallthrough 而不捕获回溯”到 19.5
- 向后移植“为 2026101500011905 添加 What’s New 条目”
- 向后移植“当仓库缺失时为 Orbit 归档和 changed_paths 返回 404”到 19.5
- 向后移植“停止无 fetch 的作业借用 git 对象池”和“修复下游流水线 git alternates”
- [19.5] 为 3.3、3.4 和 4.0 添加 Ruby 正则表达式重复 ID 溢出补丁
- [19.5] 为 3.3、3.4 和 4.0 添加 Ruby 正则表达式重复 ID 溢出补丁
19.4.3
- 添加捆绑 Siphon CDC 表定义的 siphon-tables 镜像 [19.4]
- [19.4] 为 3.3、3.4 和 4.0 添加 Ruby 正则表达式重复 ID 溢出补丁
- 向后移植“在 ListRefs 中暴露 opt-in tagger 日期”到 19.4
- 向后移植“从开发者流程触发器中移除陈旧的 merge_request 事件”到 19.4
- 向后移植“将 IP 回退错误添加到 Gitlab::HTTP HTTP_ERRORS”到 19.4
- 向后移植“跨导出文件恢复 CVE 富集同步”到 19.4
- 向后移植“修复已登出用户的截断差异”到 19.4
- 向后移植“在 Workhorse 中剥离客户端提供的 MCP 工具的 trusted 标志”到 19.4
- 向后移植“修复当标签与目标分支同名时的快进合并”到 19.4
- 向后移植“在轮盘实验默认规范中忽略 CI 变量”
- 向后移植“为 fork MR 流水线添加缺失的 ID 令牌声明”到 19.4
- 向后移植“备份仓库时仅加载所需的片段列”
- 向后移植“为 Duo CLI 设置 GITLABBINDIR 并将工作流镜像升级到 v0.0.23”到 19.4
- 向后移植“在 .browserslistrc 中固定 Baseline 日期”到 19.4
- 向后移植“从内部 Orbit 项目信息返回 repository_storage”到 19.4
- 向后移植“Workhorse:当 Gitaly 以 ResourceExhausted 拒绝 GetArchive 时返回 429”
- 向后移植“为流水线执行策略流水线分配流水线 IID”
- [19.4] 将 gitlab-markup 更新到 2.2.0,rdoc 更新到 8.1.0
- 向后移植“当仓库缺失时为 Orbit 归档和 changed_paths 返回 404”到 19.4
- 向后移植“引发 Rouge Fallthrough 而不捕获回溯”到 19.4
- 向后移植“从可合并性字段中移除不必要的 committer 批量加载”到 19.4
- 向后移植“Wiki 体验调整”到 19.4
- [19.4] 为 3.3、3.4 和 4.0 添加 Ruby 正则表达式重复 ID 溢出补丁
19.3.6
- [19.3] 为 3.3、3.4 和 4.0 添加 Ruby 正则表达式重复 ID 溢出补丁
- 向后移植“在 ListRefs 中暴露 opt-in tagger 日期”到 19.3
- 向后移植“将 IP 回退错误添加到 Gitlab::HTTP HTTP_ERRORS”到 19.3
- 向后移植“跨导出文件恢复 CVE 富集同步”到 19.3
- 向后移植“修复当标签与目标分支同名时的快进合并”到 19.3
- 向后移植“在 Workhorse 中剥离客户端提供的 MCP 工具的 trusted 标志”到 19.3
- 向后移植“为 fork MR 流水线添加缺失的 ID 令牌声明”到 19.3
- 向后移植“备份仓库时仅加载所需的片段列”
- 向后移植“Workhorse:当 Gitaly 以 ResourceExhausted 拒绝 GetArchive 时返回 429”
- 向后移植“在 .browserslistrc 中固定 Baseline 日期”到 19.3
- 向后移植“从内部 Orbit 项目信息返回 repository_storage”到 19.3
- [19.3] 将 gitlab-markup 更新到 2.2.0,rdoc 更新到 8.1.0
- 向后移植“Wiki 体验调整”到 19.3
- 向后移植“引发 Rouge Fallthrough 而不捕获回溯”到 19.3
- 向后移植“当仓库缺失时为 Orbit 归档和 changed_paths 返回 404”到 19.3
- 将 Prometheus 升级到 3.13.2(19-3-stable)
- [19.3] 为 3.3、3.4 和 4.0 添加 Ruby 正则表达式重复 ID 溢出补丁
19.2.9
- [19.2] 为 3.3、3.4 和 4.0 添加 Ruby 正则表达式重复 ID 溢出补丁
- 向后移植“为 fork MR 流水线添加缺失的 ID 令牌声明”到 19.2
- [19.2] 将 gitlab-markup 更新到 2.2.0,rdoc 更新到 8.1.0
- 将 Prometheus 升级到 3.13.2(19-2-stable)
- [19.2] 为 3.3、3.4 和 4.0 添加 Ruby 正则表达式重复 ID 溢出补丁
19.1.9
- 将 websocket-driver 从 0.8.0 升级到 0.8.2(向后移植到 19-1-stable-ee)
- 向后移植“修复空 CI 分区上的回填迁移重叠”到 19-1-stable-ee
- 向后移植“将 GitLab Elasticsearch Indexer 更新到 5.14.14”到 19.1
- 向后移植“在 secrets 规范中放弃系统失败断言”到 19-1-stable-ee
- 在 19.1 中将 gitlab-shell 升级到 14.56.1(gitlab-sshd CPU 自旋修复)
- 将 PostgreSQL 升级到 17.11(19-1-stable)
- 将 Consul 升级到 1.22.7(19-1-stable)
- 将分支 ‘sdg-fips-staging-upload-internal-release’ 合并到 19.1
- 向后移植 !9672 到 19-1-stable:selinux:为 RHEL 10 / OpenSSH 9.8+ 添加 sshdsessiont 和 sshdautht 规则
- 向后移植 !9744 到 19-1-stable:在 SELinux 下允许 sshd 快速 SSH 密钥查找
- 将 Patroni 流状态视为运行中的节点(向后移植到 19-1-stable)
- [19.1] 为 3.3 和 3.4 添加 Ruby 正则表达式重复范围双重释放补丁
- [19.1] 为 3.3 和 3.4 添加 Ruby 正则表达式重复范围双重释放补丁
19.0.10
- 将预发布和生产上传超时从 35 分钟增加到 60 分钟
- [19.0] 为 3.3 和 3.4 添加 Ruby 正则表达式重复范围双重释放补丁
- [19.0] 为 3.3 和 3.4 添加 Ruby 正则表达式重复范围双重释放补丁
18.11.13
- 将预发布和生产上传超时从 35 分钟增加到 60 分钟
- Mattermost 安全更新 2026 年 8 月 13 日
- [18.11] 为 3.3 和 3.4 添加 Ruby 正则表达式重复范围双重释放补丁
- [18.11] 为 3.3 和 3.4 添加 Ruby 正则表达式重复范围双重释放补丁
升级重要说明
此补丁包含可能影响升级过程的数据库迁移。
对安装的影响:
- 单节点实例:此补丁将在升级期间导致停机,因为迁移必须在 GitLab 启动前完成。
- 多节点实例:通过正确的零停机升级流程,可无需停机应用此补丁。
常规迁移
以下版本包含在升级过程中运行的常规迁移:
- 19.4.3
- 19.3.6
部署后迁移
以下版本包含可在升级后运行的部署后迁移:
- 19.4.3
要了解升级对安装的影响,请参阅:
更新
要更新 GitLab,请参阅更新页面。要更新 GitLab Runner,请参阅更新 Runner 页面。
接收补丁通知
要通过收件箱接收补丁博客通知,请访问联系我们页面。要通过 RSS 接收发布通知,请订阅补丁发布 RSS 源或所有发布的 RSS 源。
评论
讨论气氛疲惫而焦虑,甚至出现“安全方面真是美好的一周”的反讽。分歧主轴不在是否修补,而在 CVSS 10 是否被夸大、漏洞根源属于 GitLab 自身还是 Ruby 等底层依赖,以及人工智能辅助挖掘是否会把安全带入黑暗时代。
认为漏洞严重且近期正则 CVE 频发,但未授权可达才最令人不安
- 有人指出 GitLab 过去几周至少第二次出现正则相关 CVE,且相关端点能未授权访问,这比分数本身更让人不安;官方提供的日志利用排查指引受到肯定。还有人称赞 joaxcar 在 HackerOne 上的发现,但强调这么严重的 bug 竟还不是当天最大的漏洞,说明当天安全形势格外可怕。(认可度:较多人) > “短短几周内这至少是 GitLab 第二个正则相关 CVE,端点能未授权访问让人不安,好在官方提供了如何检查日志以发现利用尝试的指引。”(@miduil)
难以判断这是 GitLab 自身正则编译器的问题,还是 Ruby 等底层依赖的漏洞
- 有人从报告和补丁里看不出这是 GitLab 的 bug 还是 Ruby 的 bug;也有人质疑 GitLab 为何要自带正则编译器,想知道漏洞是否其实出在底层库或语言本身。(认可度:较多人) > “从报告和补丁里很难判断这到底是 GitLab 还是 Ruby 的问题。”(@ezekg)
质疑 CVSS 10 评分的实际意义
- 有人提醒,标题里并没有 CVSS 10.0 这一表述,而且 CVSS 10 分本身并不代表任何实际风险或影响。(认可度:少数人) > “CVSS 10.0 这个分数其实并不代表任何实际意义。”(@tptacek)
担忧人工智能参与漏洞发现会让信息技术安全进入黑暗时代
- 有人形容这可能是史上最糟的安全新闻日,并指出由于人工智能参与了一些漏洞的发现,担心这标志着信息技术安全黑暗时代的开始。(认可度:少数人) > “这正在变成有史以来最糟的安全新闻日,而鉴于人工智能参与了一些漏洞的发现,人们不得不怀疑这是否标志着信息技术安全黑暗时代的开始。”(@hobofan)
自托管用户担心暴露面被打穿,感到难以应对
- 有自托管用户表示,只能指望 Tailscale 足够安全并配合严格的出口流量过滤来保护 GitLab,否则家庭实验室就会失守;即便自认深度在线也感到无力处理这一连串漏洞,并公开寻求防护建议。(认可度:少数人) > “我很担心自托管的服务器,只能指望 Tailscale 完全安全并重度过滤出口流量;如果这样还不行,我的家庭实验室就完了。”(@minraws)
有价值的补充
- 批量修补时,可用 gitlab-rake gitlab:env:info 逐节点获取精确版本,比从 omnibus 包名推断更快更准。(@beaconflint)
- 有用户反馈升级到 19.5.1 后,界面仍弹出“当前是 19.5.1,强烈建议立即升级”的提示,怀疑版本检查或缓存存在显示错误,需要确认是否只是前端提示问题而非补丁未生效。(@bon0r)
- 有人联想到 Perl 5.8 及更早版本的正则引擎是在 C 函数层级递归实现的,处理超长字符串会触发栈溢出,并询问 GitLab 这次的正则问题是否属于同类情况。(@perlgeek)