新闻公告使用手机扫一扫查看
< 返回

深入解析GitLab RCE漏洞

2026-07-28 18:22 作者:数掘云算 阅读量:5

一、漏洞概述:底层解析器缺陷引发GitLab远程控制风险

近日,安全研究团队披露了一组针对 GitLab 的高危远程代码执行(RCE)漏洞链。攻击者通过组合利用 Ruby JSON 解析组件 Oj(Optimized JSON Parser) 中存在的两个内存安全漏洞,最终可在 GitLab Puma 服务进程中实现远程命令执行。

该漏洞影响 GitLab CE 和 EE 多个版本。攻击者无需管理员权限,也无需用户交互,只需要拥有普通项目成员权限,并能够提交代码、查看提交差异(Diff),即可触发漏洞利用。

安全研究人员表示,该漏洞链利用了 GitLab 内置的 Notebook Diff 渲染功能,将用户可控的 Jupyter Notebook 文件解析过程作为攻击入口,通过底层 C 语言实现的 Oj 解析器缺陷突破内存安全限制,最终实现代码执行。


二、漏洞技术分析:从Notebook Diff到服务器命令执行

此次漏洞攻击链主要围绕 GitLab 的 ipynbdiff 组件展开。

GitLab 为了方便开发者查看 Jupyter Notebook 文件变化,会在提交记录中自动解析 .ipynb 文件,并生成可读的差异展示。

正常情况下,流程如下:

用户提交 Notebook 文件

        ↓

GitLab Commit Diff解析

        ↓

ipynbdiff组件处理

        ↓

Oj JSON解析器解析数据

        ↓

生成页面展示

攻击者利用异常构造的 Notebook 文件,使 Oj 解析器进入异常状态,并进一步触发内存破坏。

攻击链主要包含两个关键漏洞:


1、嵌套数据导致解析器内存破坏

第一个漏洞存在于 Oj 对 JSON 嵌套结构处理过程中。

Oj 内部使用固定大小的数据结构记录 JSON 层级,当攻击者提交超过限制深度的嵌套数组时:

[
 [
  [
   [
    ...
   ]
  ]
 ]
]

解析器会持续写入超出范围的数据区域,导致内部结构指针异常。

攻击者通过控制嵌套深度,使解析器内部关键数据发生偏移,为后续利用创造条件。


2、对象键长度截断导致地址泄露

第二个漏洞来源于 Oj 对超长 JSON Key 的处理逻辑。

攻击者构造超长对象名称:

{
 "AAAA...(65565 bytes)":value
}

由于长度类型转换错误,实际长度被截断,导致解析器返回的数据中包含部分堆内存地址信息。

攻击者利用该信息绕过 ASLR(地址随机化保护),获取内存布局,为进一步执行代码提供基础。


三、完整攻击流程

攻击者利用两个漏洞组合形成完整攻击链:

恶意Notebook文件

        ↓

提交至GitLab项目

        ↓

触发Commit Diff查看

        ↓

GitLab调用Oj解析

        ↓

内存破坏

        ↓

泄露地址信息

        ↓

绕过ASLR保护

        ↓

控制Puma Worker进程

        ↓

执行系统命令

成功利用后,攻击者可以获得 GitLab 运行账户权限。

由于 GitLab Puma Worker 通常以 git 用户运行,因此攻击者可能进一步访问:

  • 源代码仓库
  • CI/CD配置
  • Rails密钥
  • 数据库连接信息
  • 内部服务凭证

进一步造成:

  • 源代码泄露
  • 仓库篡改
  • 凭证窃取
  • 横向移动
  • 持久化控制

四、影响范围

受影响版本包括:

GitLab版本
是否受影响
15.2.0 - 18.10.7
受影响
18.11.0 - 18.11.4
受影响
19.0.0 - 19.0.1
受影响

官方建议升级至:

  • GitLab 18.10.8
  • GitLab 18.11.5
  • GitLab 19.0.2

15.2之前版本由于使用不同解析组件,因此不受该攻击路径影响。


五、安全防护建议

1、立即升级GitLab版本

建议管理员优先升级至官方修复版本。

升级前:

  • 备份GitLab数据
  • 检查版本兼容性
  • 验证插件和CI流程

2、加强代码仓库权限管理

降低普通账号攻击面:

  • 限制项目成员权限
  • 禁止未知用户提交代码
  • 开启代码审核机制
  • 管理外部协作者权限

3、加强服务器运行隔离

建议:

  • GitLab独立部署
  • 限制服务账号权限
  • 禁止Puma进程访问敏感目录
  • 网络隔离内部服务

4、加强安全监测

重点关注:

  • 异常Notebook提交
  • 异常Diff访问行为
  • Git用户执行异常命令
  • GitLab服务器异常外连

六、贵州数掘科技安全观点

随着企业研发平台、代码仓库和DevOps体系不断集中化,GitLab等开发协作平台已经成为攻击者重点关注目标。

传统安全防护更多关注网络边界,但现代攻击正在向“应用组件漏洞 + 身份权限滥用 + 内部横向移动”方向发展。

贵州数掘科技基于网络安全防护、云计算基础设施和智能安全分析能力,持续关注开源组件漏洞、供应链攻击以及企业数字资产风险,通过安全监测、漏洞响应、攻击溯源和云安全防护体系,帮助企业提升数字基础设施安全保障能力。

面对高危漏洞,快速发现、及时修复、持续监测,是降低安全风险的关键。

联系我们
返回顶部