GitLab 发布紧急安全补丁,修复 CVSS 10.0 级高危漏洞
2026 年 10 月 21 日,GitLab 正式发布了社区版 (CE) 和企业版 (EE) 的多个关键补丁版本,具体包括 19.5.1、19.4.3、19.3.6、19.2.9、19.1.9、19.0.10 以及 18.11.13。此次更新集中修复了多项严重的安全漏洞及功能性 Bug。

鉴于本次更新包含针对“危急”级别漏洞的修复,官方强烈建议所有自主管理的 GitLab 实例立即升级至上述任一修补版本。目前,GitLab.com 已运行最新补丁版本;对于使用 GitLab Dedicated 的用户,若其租户版本为 19.3.5-internal0、19.4.2-internal0 或更高版本,则已包含相关修复,无需额外操作。
GitLab 遵循标准的补丁发布流程,通常于每月第二个和第四个星期三进行计划发布,但在面对严重漏洞时会启动临时关键补丁机制。关于保护 GitLab 实例的最佳实践及安全卫生建议,可参考官方博客文章。
核心安全修复详情
本次更新共涉及 12 项安全修复,涵盖从危急到低危不同严重程度。其中,最引人注目的是一个允许未经认证用户执行任意代码的高危漏洞(CVE-2026-110264)。
| 漏洞标题 | 严重程度 |
|---|---|
| 正则表达式编译器中的整数溢出问题 (GitLab CE/EE) | 危急 |
| OmniAuth-to-LDAP 自动链接电子邮件查找中的身份验证缺陷 (GitLab CE/EE) | High |
| OAuth/OIDC 发现端点中的缓存中毒问题 (GitLab CE/EE) | High |
| GraphQL 工作项目电子邮件地址字段访问控制不当 (GitLab CE/EE) | Medium |
| 实例范围 SAML/LDAP 会员锁执行不完全导致未授权添加成员 (GitLab EE) | Medium |
| 内部响应头泄露内部凭证 (GitLab CE/EE) | Medium |
| 组里程碑 API 中通过用户控制参数绕过授权 (GitLab CE/EE) | Medium |
| AI 网关功能启用头中使用不可信源 (GitLab EE) | Medium |
| 合并请求中标题污染含敏感信息的缓存 (GitLab CE/EE) | Low |
| 合并请求批准策略执行中的访问控制不当 (GitLab EE) | Low |
| 安全发现中的异常清理不当 (GitLab EE) | Low |
| Amazon Q 设置中组合管理员锁的错误访问控制 (GitLab EE) | Low |
CVE-2026-110264:正则表达式编译器整数溢出(CVSS 10.0)
这是一个极其严重的漏洞,影响 GitLab CE/EE。在特定条件下,未经认证的用户可通过编译特制正则表达式触发整数溢出,从而在服务器上执行任意代码。
- 受影响版本: 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 漏洞奖励计划报告此问题。
除标准补丁外,该修复已回归至 18.11.13、19.0.10、19.1.9 和 19.2.9 版本。GitLab 安全团队还发布了针对自主管理实例的威胁检测规则,以协助识别利用尝试。
CVE-2026-15723:OmniAuth-to-LDAP 身份验证缺陷(CVSS 8.2)
当同时启用 OmniAuth SAML 和 LDAP 自动链接时,由于 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/H/I:H/A:N)
- 致谢: “偷偷地”(用户名)通过 HackerOne 漏洞奖励计划报告此问题。
CVE-2026-112212:OAuth/OIDC 缓存中毒(CVSS 7.5)
未经认证的用户可能通过构建端点 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 (CVSS 6.8): GraphQL 工作项电子邮件地址字段存在访问控制不足,拥有 read_api-scoped token 的用户可检索项目传入邮件地址并创建工作项。受影响版本同前。感谢 go7f0 报告。
- CVE-2026-16255 (CVSS 5.9): GitLab EE 中,实例范围的 SAML/LDAP 会员锁定在执行锁定前创建的请求时存在缺陷,可能导致未经授权的成员资格授予。受影响版本自 12.0 起。感谢 3nvz 报告。
- 内部凭证泄露 (CVSS 4.3): 由于内部响应头部处理不当,未经认证用户可能获取敏感内部服务器凭证。受影响版本自 17.6.5 起。感谢 Altair00 报告。
- CVE-2026-13319 (CVSS 4.3): 组里程碑 API 缺少对用户提供参数的授权检查,认证用户可读取整个实例中任意私有项目的里程碑元数据。受影响版本自 15.10 起。感谢 A0xnirudh 报告。
- AI 功能未授权访问 (CVSS 4.3): GitLab EE 中,计费资格检查服务器端验证不足,允许无有效订阅用户访问付费 AI 功能。受影响版本自 17.8 起。由 GitLab 团队成员 Halil Coban 内部发现。
- CVE-2026-105711 (CVSS 3.5): 片段缓存密钥在所有用户间共享,导致非项目成员可能在公共 MR 中看到引用自私有项目的机密 Issue 标题。受影响版本自 15.0 起。感谢 20kilograma 报告。
- CVE-2026-14288 (CVSS 3.1): GitLab EE 中,受保护分支上的合并请求审批规则同步期间存在访问控制不当,允许绕过必要审批。受影响版本自 17.4 起。感谢 3nvz 报告。
- CVE-2026-112326 (CVSS 3.1): GitLab EE 中,异常处理逻辑未能区分现有记录与新创建记录,导致只读权限用户可能永久删除漏洞记录。受影响版本自 17.8 起。由 GitLab 团队成员 Gregory Havenga 内部发现。
- CVE-2026-103515 (CVSS 2.7): GitLab EE 中,管理员锁定组的 Duo 可用性后,组 Owner 仍可能重新启用向第三方服务的数据出口,因管理员锁控制粒度不足。受影响版本自 19.2 起。感谢 3nvz 报告。
Bug 修复列表
除了安全补丁,各版本还包含了若干稳定性与功能修复:
版本 19.5.1
- 回移 19.5 文档页面至稳定分支及发布说明。
- 忽略轮盘实验默认规范中的 CI 变量。
- 隔离作用域选择器搜索查询规范。
- 回移 GitLab Runner 19.5 发布帖。
- 将 CNG Helm chart 引用提升至 v10.5.0。
- 为 Duo CLI 设置 GITLAB_BIN_DIR 并将 workflow image 升至 v0.0.23。
- 从内部 Orbit 项目信息返回 repository_storage。
- Workhorse:当 Gitaly 拒绝 GetArchive 且资源耗尽时返回 429。
- 为流水线执行策略分配流水线 IID。
- 链接提交列表浏览按钮至当前文件路径。
- 备份仓库时仅加载所需的片段列。
- 更新 gitlab-markup 至 2.2.0,rdoc 至 8.1.0。
- 固定 .browserslistrc 中的 Baseline 日期。
- 按请求缓存基础流目录项。
- 修复带有 features 字段的工作项变更类型和子里程碑。
- 抛出 Rouge Fallthrough 而不捕获回溯。
- 添加 202610150001_19_05 的新特性条目。
- 当仓库缺失时,Orbit archive 和 changed_paths 返回 404。
- 停止无 fetch 作业借用 git 对象池,修复下游流水线 git alternates。
- 为 Ruby 3.3, 3.4 和 4.0 添加正则表达式重复 ID 溢出补丁。
版本 19.4.3
- 添加捆绑 Siphon CDC 表定义的 siphon-tables 镜像。
- 为 Ruby 3.3, 3.4 和 4.0 添加正则表达式重复 ID 溢出补丁。
- 在 ListRefs 中暴露可选的 tagger 日期。
- 移除 Developer 流触发器中过期的 merge_request 事件。
- 将 IP fallback 错误添加到 Gitlab::HTTP HTTP_ERRORS。
- 恢复跨导出文件的 CVE enrichment 同步。
- 修复退出登录用户的截断 diff 显示。
- 在 Workhorse 中剥离客户端提供的 MCP 工具的 trusted flag。
- 修复标签与目标分支同名时的快进合并。
- 忽略轮盘实验默认规范中的 CI 变量。
- 为 fork MR 流水线添加缺失的 ID token claims。
- 备份仓库时仅加载所需的片段列。
- 为 Duo CLI 设置 GITLAB_BIN_DIR 并将 workflow image 升至 v0.0.23。
- 固定 .browserslistrc 中的 Baseline 日期。
- 从内部 Orbit 项目信息返回 repository_storage。
- Workhorse:当 Gitaly 拒绝 GetArchive 且资源耗尽时返回 429。
- 为流水线执行策略分配流水线 IID。
- 更新 gitlab-markup 至 2.2.0,rdoc 至 8.1.0。
- 当仓库缺失时,Orbit archive 和 changed_paths 返回 404。
- 抛出 Rouge Fallthrough 而不捕获回溯。
- 移除可合并性字段中不必要的 committer 批量加载。
- 调整 Wiki 体验。
版本 19.3.6
- 为 Ruby 3.3, 3.4 和 4.0 添加正则表达式重复 ID 溢出补丁。
- 在 ListRefs 中暴露可选的 tagger 日期。
- 将 IP fallback 错误添加到 Gitlab::HTTP HTTP_ERRORS。
- 恢复跨导出文件的 CVE enrichment 同步。
- 修复标签与目标分支同名时的快进合并。
- 在 Workhorse 中剥离客户端提供的 MCP 工具的 trusted flag。
- 为 fork MR 流水线添加缺失的 ID token claims。
- 备份仓库时仅加载所需的片段列。
- Workhorse:当 Gitaly 拒绝 GetArchive 且资源耗尽时返回 429。
- 固定 .browserslistrc 中的 Baseline 日期。
- 从内部 Orbit 项目信息返回 repository_storage。





