公告 > 公告详情

【安全通告】GitLab CE/EE 远程代码执行漏洞风险通告

尊敬的金融云平台用户,您好!


腾讯金融云平台安全运营团队监测到,GitLab CE/EE 被披露其存在远程代码执行漏洞,暂无漏洞编号。可导致经过身份验证的远程攻击者通过提交包含恶意 Jupyter Notebook(.ipynb)文件的 commit 并查看其 diff,利用底层 Oj JSON 解析器的内存破坏漏洞(越界写 + 堆指针泄露)实现远程代码执行等危害。


为避免您的业务受影响,腾讯云安全建议您及时开展安全自查,如在受影响范围,请您及时进行更新修复,避免被外部攻击者入侵。


漏洞详情

GitLab 是一个用于代码仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web 服务。


在 GitLab CE/EE 中,GitLab 使用 Oj 高性能 JSON 解析器(原生 C 扩展)处理 Jupyter Notebook 文件的 diff 渲染。Oj 3.13.0 至 3.17.1 版本中存在两处内存安全漏洞:其一为解析器嵌套栈未校验深度,导致数组嵌套时可越界写入连续的 0x01 字节,进而通过操纵 buf.head 指针和 jemalloc 分配器行为,将伪造的 p->start 回调指针写入解析器结构;其二为对象键长度处理缺陷,当键长度超过 0x10000 时,len 字段被截断为 29,导致返回的键数据中泄露堆指针(buf[6:14])。攻击者可利用堆指针泄露绕过 ASLR,结合回调指针覆盖,在下一个解析中劫持控制流,最终通过 system() 执行任意命令。


目前该漏洞的漏洞细节、POC已公开。


风险等级

高风险


漏洞风险

经过身份验证的远程攻击者利用该漏洞可在 GitLab 服务器上以 git 用户身份执行任意命令,导致源代码泄露、凭证窃取、仓库篡改或横向移动等危害。


影响版本

15.2.0 <= GitLab CE/EE <= 18.10.7

18.11.0 <= GitLab CE/EE <= 18.11.4

19.0.0 <= GitLab CE/EE <= 19.0.1

3.13.0 <= Oj (RubyGems) <= 3.17.1


安全版本

GitLab CE/EE >= 18.10.8

GitLab CE/EE >= 18.11.5

GitLab CE/EE >= 19.0.2

Oj (RubyGems) >= 3.17.3


修复建议

1. 官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,建议升级至最新版本

2. 缓解措施:

(1) 禁止新用户注册,仅允许管理员分配账号;

(2) 临时禁用 Jupyter Notebook diff 渲染(通过修改 GitLab 配置或移除 ipynbdiff 依赖);

(3) 限制用户对项目的推送和 commit 查看权限,仅授予可信用户;

(4) 监控 GitLab 日志中异常的 .ipynb 文件处理请求;

(5) 对于自托管实例,可考虑升级 Oj (RubyGems) 至 3.17.3 或更高版本(需注意兼容性)。


【备注】:建议您在升级前做好数据备份工作,避免出现意外


漏洞参考

https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-0-2-released/

https://depthfirst.com/research/going-depthfirst-achieving-gitlab-rce-via-two-ruby-memory-corruption-vulnerabilities

https://github.com/wupco/gitlab-rce-demo/

腾讯云金融云平台

2026-07-27